在app委托之外使用解析函数时出错

时间:2014-08-22 01:52:00

标签: ios xcode swift parse-platform

使用Xcode 6 beta 6通过parse.com设置我的应用程序。我按照here列出的说明进行了操作,并将框架导入我的应用程序并添加了桥接标题等。然后我将我的应用程序密钥添加到我的应用程序代理中

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
    }

并且工作正常。我验证了测试对象是在数据浏览器中创建的,并且认为我已经设置好了。然后我开始在我的应用程序中实现登录。在我的第一个视图控制器中,我创建了一个当前用户变量,我的应用程序崩溃并出现以下错误:由于未捕获的异常'NSInternalInconsistencyException'而终止应用程序,原因:'您必须调用setApplicationId:clientKey:on Parse以配置Parse。'

我确实设置了它,它在我的app委托中起作用,但由于某种原因,app委托之外的任何解析代码都会导致崩溃。我甚至在我的视图控制器中再次粘贴了测试代码,在第一行解析相关代码后它甚至没有自动完成任何内容

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的问题吗?

1 个答案:

答案 0 :(得分:3)

在处理另一个应用程序时,我意识到当我遇到这个问题时我做了什么。我试图初始化一个属性来存储当前用户,但我在视图之外做了加载所以它必须在应用委托调用configure parse之前调用甚至运行。在viewDidLoad中初始化它之后,而不是在声明属性时它工作正常。