我當前已得到CloudKit設立在我的應用程序,這樣我加入使用下面的下面的代碼的幫助的新紀錄,CloudKit:獲取具有某種記錄類型的所有記錄?
CKRecordID *recordID = [[CKRecordID alloc] initWithRecordName:@"stringArray"];
CKRecord *record = [[CKRecord alloc] initWithRecordType:@"Strings" recordID:recordID];
[record setObject:[NSArray arrayWithObjects:@"one", @"two", @"three", @"four", nil] forKey:@"stringArray"];
[_privateDatabase saveRecord:record completionHandler:nil];
不過,現在我想能夠將所有取記錄類型相同的記錄「字符串」,並將編譯的結果返回給NSArray。我會怎麼做呢?目前,我所知道的是如何使用recordID單獨獲取每條記錄,這是一件麻煩事,必須有一種更簡單的方法。
[_privateDatabase fetchRecordWithID:recordID completionHandler:^(CKRecord *record, NSError *error) {
if (error) {
// Error handling for failed fetch from private database
}
else {
NSLog(@"ICLOUD TEST: %@", [record objectForKey:@"stringArray"]);
}
}];
根據CKQuery API參考:「謂詞是基於在一個格式字符串上,你不能使用值或基於塊的謂詞。「我不認爲它總是這樣,但目前沒有答案是正確的,因爲他們使用'NSPredicate(value:)' – 2017-05-29 22:48:26
@JamesLingo你試過了嗎?這是一個假設嗎? 「NSPredicate(value:true)'完全沒問題 – 2018-01-27 21:30:13
我以前用過它,但根據Apple自己的文檔,任何人都應該知道它不支持CloudKit。蘋果公司可能會做出改變來破壞代碼,並且可以使用基於值或塊的謂詞來完成。 – 2018-01-29 19:08:44