2016-07-09 14 views
0

Ich habe Probleme, meine Anwendung zu erhalten, alle einen Datensatztyp zu holen und jeden Benutzer Datensatz in einem Array abgelegt haben.Wie kann ich alle Datensätze aus Cloudkit abrufen

Dies ist der Code, der den Datensatz

func locationManager(manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) { 
    let id = CKRecordID(recordName: "01") 
    let locationRecord = CKRecord(recordType: "location", recordID: id) 
    locationRecord.setObject(location, forKey: "location") 
    let publicData = CKContainer.defaultContainer().publicCloudDatabase 
    publicData.saveRecord(locationRecord) { record, error in 
    //.. 
    } 
} 

Antwort

3

speichert Sie erhalten eine CKQuery mit einem NSPredicate Satz auf true verwenden müssen:

let predicate = NSPredicate(value: true) 

let query = CKQuery(recordType: "location", predicate: predicate) 

database?.performQuery(query, inZoneWithID: nil) { results, error in 
    //... 
} 
+0

Nach CKQuery API-Referenz: " Prädikate basieren auf einer Formatzeichenfolge. Sie können keine Wert- oder Blockprädikate verwenden. " Ich glaube nicht, dass es immer so war, aber momentan funktioniert diese Antwort nicht. –

-1
CKDatabase *publicDatabase = [[CKContainer defaultContainer]]; 

NSPredicate *predicate = [NSPredicate predicateWithValue:YES]; 

CKQuery *query = [[CKQuery alloc] initWithRecordType:@"Group_attributes"]; 

[publicDatabase performQuery:query inZoneWithID:nil:^(NSArray *results,error){ 

}]; 
+0

Entsprechend der CKQuery-API-Referenz: "Prädikate basieren auf einer Formatzeichenfolge. Sie können keine wert- oder blockbasierten Prädikate verwenden." Ich glaube nicht, dass es immer so war, aber momentan funktioniert diese Antwort nicht. –