Ich habe zur Zeit Wolkenjunge bekam in meiner App so einrichten, dass ich einen neuen Rekord bin Zugabe unter Verwendung der Hilfe des folgenden Codes,CloudKit: Alle Datensätze mit einem bestimmten Datensatztyp abrufen?
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];
Aber jetzt würde ich ALL holen zu können, wie Datensätze mit dem gleichen Datensatztyp "Strings" und geben diese in einem NSArray kompiliert zurück. Wie würde ich das machen? Derzeit habe ich nur herausgefunden, wie man jeden Datensatz einzeln mit einer RecordID abruft, was mühsam ist, da muss es einen einfacheren Weg geben.
[_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"]);
}
}];
Nach CKQuery API-Referenz: „Prädikate basieren Sie können keine Wert- oder blockbasierten Prädikate verwenden. " Ich glaube nicht, dass es immer so war, aber momentan ist keine der beiden Antworten korrekt, weil sie 'NSPredicate (value:)' –
@JamesLingo verwenden. Hast du es versucht? ist es eine Vermutung? 'NSPredicate (value: true)' ist völlig in Ordnung –
Ich habe es in der Vergangenheit verwendet, aber jeder, der es tut, sollte wissen, dass es nicht für CloudKit unterstützt wird, laut Apples eigener Dokumentation. Apple könnte sehr wohl Änderungen vornehmen, die diesen Code kaputt machen würden, und es kann ohne Wert oder blockbasierte Prädikate gemacht werden. –