2016-01-20 58 views
1

我遇到的问题区分了创建,更新或删除的记录类型。从iCloud发送的通知中区分记录类型

我有两个CKSubscription s不同类型的记录;狗和猫。

从看[String : AnyObject],没有什么区别是否发生在狗或猫的任何方式。

类似这样的事情发送到应用程序作为远程通知。

["ck": { 
    ce = 2; 
    cid = "iCloud.com.xxx.yyy"; 
    nid = "xxx-xxx-xxx"; 
    qry =  { 
     dbs = 2; // I don't know what this is, but it doesn't change 
     fo = 3; // This indicates a deletion. 
     rid = "SomeManuallySetID"; 
     sid = "117DCFC3-F723-49F7-9F9D-A3D7463671F2"; 
     zid = "_defaultZone"; 
     zoid = "_defaultOwner"; 
    }; 
}] 

有没有人能够这样做,而无需再次查询iCloud?

回答

2

您首先得到NSNotificationCKNotification。然后在确定它是查询通知后,将其转换为CKQueryNotification。从这里你可以得到CKRecordID。使用该功能,您可以从CKDatabase中获取CKRecord。一旦你有了CKRecord你可以使用recordType属性。

+0

非常感谢!我拥有的大部分知识都基于博客文章,并没有提及任何有关CKQueryNotification的内容。谢谢,我会通过官方文件研究这个课程。哦,但是你确实需要自己取回它。 –

+1

您可以通过'notificationInfo'指定要包含在推送通知的有效内容数据中的记录字段。这可能会帮助您区分,具体取决于您的情况。 – Michael