Ho attualmente ottenuto CloudKit istituito nella mia app in modo che io sono l'aggiunta di un nuovo record con l'aiuto del seguente codice sotto,CloudKit: recupera tutti i record con un determinato tipo di record?
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];
Tuttavia, ora mi piacerebbe essere in grado di recuperare tutti record che sono dello stesso tipo di record, "Stringhe" e restituiscono quelli compilati in un NSArray. Come potrei fare per farlo? Attualmente, tutto quello che ho capito è come recuperare ogni record individualmente, usando un recordID, che è una seccatura, ci deve essere un modo più semplice.
[_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"]);
}
}];
Secondo CKQuery API Reference: "predicati si basano su una stringa di formato. Non puoi utilizzare predicati basati su valori o blocchi. " Non penso che sia sempre stato così, ma attualmente nessuna delle due risposte sarebbe corretta perché usa 'NSPredicate (value:)' –
@JamesLingo L'hai provato? è una supposizione? 'NSPredicate (value: true)' è completamente valido –
L'ho usato in passato, ma chiunque lo facesse dovrebbe sapere che non è supportato per CloudKit, secondo la documentazione di Apple. Apple potrebbe benissimo fare cambiamenti che potrebbero infrangere quel codice, e può essere fatto senza l'uso di predicati basati su valori o blocchi. –