2014-09-25 10 views
13

In den Dokumenten steht, dass öffentliche CloudKit-Datenbanken auch dann gelesen werden können, wenn sich der Benutzer nicht mit einem richtigen iCloud-Konto angemeldet hat. Ich kann jedoch nichts aus meiner Cloud-Datenbank abrufen, wenn ich meinen iOS-Simulator oder mein iOS-Gerät nicht mit iCloud verbunden habe. Wenn ich mein iCloud-Konto aktiviere, kann ich Daten aus meiner öffentlichen Datenbank abrufen. Wenn jemand, der eine Antwort oder das gleiche Problem mit mir hat, antworten könnte, wäre das großartig. Vielen Dank.CloudKit öffentliche Datenbank ohne iCloud Login

CKDatabase *publicDatabase = [[CKContainer containerWithIdentifier:@"mycontainer"] publicCloudDatabase]; 
CKRecordID *recordID = [[CKRecordID alloc] initWithRecordName:@"idofmyrecord"] ; 

[publicDatabase fetchRecordWithID:recordID completionHandler:^(CKRecord *fetchedRecord, NSError *error) { 
    if(!error){ 
     NSLog(@"****Success***** %@",fetchedRecord[@"field1"]); 

    }else{ 
     NSLog(@"****Failed***** %@",fetchedRecord[@"field2"]); 

    } 
}]; 
+0

ist die Containerverbindung betriebsbereit? Normalerweise verwende ich [CKContainer defaultContainer] –

+0

Ich verwende einen anderen Container, weil meine Daten in einem anderen Container gespeichert sind. Wie kann ich die Verbindungseinstellungen ändern, um den Zugriff ohne iCloud-Konto zu ermöglichen, oder kann dies geschehen? Danke für die Hilfe. –

+0

Es sollte kein Problem sein, 'fetchRecordWithID'-Methode auszuführen, ohne angemeldet zu sein. Was gibt' containerWithIdentifier' zurück? –

Antwort

3

Ich denke, die Dokumentation ist falsch oder das ist ein Fehler in Apples Code. Sie sollten ein Radar an https://developer.apple.com/bug-reporting/

senden
+0

Ja, ich denke das Gleiche. Ich habe das mehrmals versucht, indem ich alles nach dem Buch gemacht habe und ich habe einfach keinen Erfolg. – Acey

+0

Das ist, was ich früher dachte und tippte, ich habe bereits einen Fehlerbericht geöffnet. Danke, aber dies ist keine Antwort, es ist nur ein Kommentar, bitte ändere es. –

+0

@JanderXlav Wenn Sie gemeldet haben, dann teilen Sie die offene Radarverbindung. –

6

Die öffentliche Datenbank ist nur lesbar ohne Anmeldung in der Produktionsumgebung, nicht in der Entwicklungsumgebung.

Apples Dokumentation sagt:

In Entwicklung, wenn Sie Ihre Anwendung durch Xcode auf einem Simulator oder einem Gerät auszuführen, müssen Sie iCloud Anmeldeinformationen zu lesen Datensätze in der öffentlichen Datenbank einzugeben. In der Produktion ermöglichen die Standardberechtigungen nicht authentifizierten Benutzern das Lesen von Datensätzen in der öffentlichen Datenbank, erlauben ihnen jedoch nicht das Schreiben von Datensätzen.

Siehe CloudKit Quick Start.

Verwandte Themen