Skip to main content
 首页 » 操作系统

ios之在应用程序委托(delegate)之外使用解析函数时出错

2024年01月01日49qq78292959

使用 Xcode 6 beta 6 通过 parse.com 设置我的应用程序。我遵循了列出的说明 here并将框架导入我的应用程序并添加桥接 header 等。然后我将我的应用程序 key 添加到我的应用程序委托(delegate)中

func application(application: UIApplication!, didFinishLaunchingWithOptions launchOptions: NSDictionary!) -> Bool { 
        // Override point for customization after application launch. 
 
        Parse.setApplicationId("app key here", clientKey: "client key here") 
        var testObject = PFObject(className: "test") 
        testObject["foo"] = "bar" 
        testObject.saveInBackground() 
 
        return true 
    } 

而且效果很好。我验证了测试对象是在数据浏览器中创建的,并认为我已经设置好了。然后我开始着手在我的应用程序中实现登录。在我的第一个 View Controller 中,我创建了一个当前用户变量,我的应用程序因以下错误而崩溃:由于未捕获的异常“NSInternalInconsistencyException”而终止应用程序,原因:“您必须在 Parse 上调用 setApplicationId:clientKey: 以配置 Parse。”

好吧,我确实设置了它,它在我的应用程序委托(delegate)中工作,但由于某种原因,应用程序委托(delegate)之外的任何解析代码都会导致此崩溃。我什至在我的 View Controller 中再次粘贴了测试代码,它甚至在解析相关代码的第一行之后甚至没有自动完成任何内容

class HomeViewController: UITableViewController { 
 
    var testObject = PFObject(className: "test") 
    //this line after the first has a "expected expression error" and no parse methods get autocompleted 
    testObject["foo"] = "bar" 
    testObject.saveInBackground() 

有没有人遇到过这个问题? xcode 6 有问题吗?

请您参考如下方法:

在开发另一个应用程序时,我意识到遇到这个问题时我做了什么。我试图初始化一个属性来存储当前用户,但我在 View 之外做它确实加载所以它必须在应用程序委托(delegate)调用配置解析甚至运行之前被调用。在 viewDidLoad 内部初始化它而不是在声明它工作正常的属性时。