区分记录类型和 iCloud 发送的通知
Posted
技术标签:
【中文标题】区分记录类型和 iCloud 发送的通知【英文标题】:Distinguishing record type from notification sent by iCloud 【发布时间】:2016-01-20 04:10:49 【问题描述】:我在区分创建、更新或删除的记录类型时遇到问题。
我有两个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 的情况下这样做?
【问题讨论】:
【参考方案1】:您首先从NSNotification
获得CKNotification
。然后在确定它是查询通知后,将其转换为CKQueryNotification
。从那里你可以得到CKRecordID
。使用它,您可以从CKDatabase
获取CKRecord
。拥有CKRecord
后,您可以使用recordType
属性。
【讨论】:
非常感谢!我掌握的大部分知识都是基于博客文章,他们没有提到任何关于 CKQueryNotification 的内容。谢谢,我会通过官方文档研究这个类。哦,不过你得自己去拿。 您可以通过notificationInfo
指定记录的字段以包含在推送通知的有效负载数据中。这可能有助于您区分,具体取决于您的具体情况。以上是关于区分记录类型和 iCloud 发送的通知的主要内容,如果未能解决你的问题,请参考以下文章
Core Data + iCloud,更改通知插入和删除关系中的对象但不更新关系中现有实体的属性
iCloud 和 CoreData:更改为 iCloud Store 时的通知(使用现有 iCloud 数据首次启动)
iCloud 同步通知 NSPersistentStoreDidImportUbiquitousContentChangesNotification 和核心数据的问题