是否可以自动获取解析对象?

时间:2015-10-30 19:40:27

标签: parse-platform swift2 ios9 pfquery pfobject

一旦另一端的用户发送了消息,许多即时服务会自动显示消息。

现在,我能想到的唯一方法是使用一个nstimer,它将运行相应的代码块来获取消息并更新表视图。这是资源密集型的,每秒可能浪费一个请求。有没有办法自动化这个过程,只有在发送/接收新消息时才能实现?

1 个答案:

答案 0 :(得分:1)

以下是在您的应用委托中使用didReceiveRemoteNotification来响应推送通知的示例。特别是,您关心在应用程序处于活动状态时收到通知的情况。

func application(application: UIApplication, didReceiveRemoteNotification userInfo: [NSObject : AnyObject]) {

    if (PFUser.currentUser() == nil) {
        return
    }

    if (application.applicationState == UIApplicationState.Inactive || application.applicationState == UIApplicationState.Background) { 
        // Received the push notification when the app was in the background
        PFAnalytics.trackAppOpenedWithRemoteNotificationPayload(userInfo)

        // Inspect userInfo for the push notification payload
        if let notificationPayloadTypeKey: String = userInfo["someKey"] as? String {
            // Do something
        }
    } else {
        // Received the push notification while the app is active
        if let notificationPayloadTypeKey: String = userInfo["someKey"] as? String {
            // Use NSNotificationCenter to inform your view to reload
            NSNotificationCenter.defaultCenter().postNotificationName("loadMessages", object: nil)
        }
    }
}

然后你只需要在视图控制器中添加一个监听器。在viewDidLoad内部添加以下内容,只要收到通知,就会调用函数loadMessages

NSNotificationCenter.defaultCenter().addObserver(self, selector: "loadMessages", name: "loadMessages", object: nil)

如果您下载the code for Parse's Anypic example project,则可以看到他们如何处理远程通知。