【问题标题】:Use Parse.com Data in iOS 8 Notification Center widget在 iOS 8 通知中心小部件中使用 Parse.com 数据
【发布时间】:2014-10-17 09:42:58
【问题描述】:

我正在尝试从通知中心小部件内的 parse.com 下载一些字符串。
因此,我首先需要让用户登录以进行解析。首先,我正在加载凭据,这些凭据从应用程序本身保存在 NSUserDefaults 中(我知道安全方面。)。这一步工作正常,但是当我执行以下代码时,小部件说,无法加载数据。

    func signUserIn(username: String, password: String) {
    PFUser.logInWithUsernameInBackground(username, password:password) {
        (user: PFUser!, error: NSError!) -> Void in
        if (user != nil) {
            SMKeychainService.saveToken(password)
            var defaults = NSUserDefaults(suiteName: "group.xxx.xxx")
            defaults.setObject(username, forKey: "UsernameKey")
            defaults.synchronize()
            self.delegate?.signedIn!(true)
        } else {
            self.delegate?.signedIn!(false)
        }
    }
}

你们有没有人尝试在小部件内从 parse.com 加载数据?你们是如何做到的。我什至无法加载数据,因为就像我提到的小部件在用户登录时崩溃。
该应用程序本身在登录以解析和加载数据方面没有问题。

我解决了问题
我没有实现Parse.setApplicationId("xxx", clientKey: "xxx"),现在我在viewDidLoad 中实现了它并且代码有效!

【问题讨论】:

  • 错误信息是什么?单步执行代码时它到底在哪里崩溃?
  • NSUserDefaults 正在工作,SMKeychainService 也是基于NSuserDefaults。我还尝试了方法调用和没有 Parse 代码的委托返回,所以它只能是 PFUser.logInWithUsernameInBackground: 方法。

标签: ios swift parse-platform ios-app-extension ios8-today-widget


【解决方案1】:

设置

        Parse.setApplicationId(appID, clientKey: clientKey)

在 AppDelegate 中不适用于扩展。在扩展的 viewDidLoad 中使用此代码,它可以正常工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-04-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-03
    • 1970-01-01
    相关资源
    最近更新 更多