2016-01-20 55 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