Szukaj…


Uwagi

Obsługiwane typy

  • NSData
  • NSDate (data)
  • NSNumber (Int / Double)
  • NSString (String)
  • NSArray (Array)
  • CLLokalizacja
  • CKReference
  • CKAsset

Więcej szczegółów

CloudKit Dashboard

Rejestracja aplikacji do użytku z CloudKit

Musisz uzyskać plik uprawnień, aby aplikacja mogła uzyskać dostęp do iCloud i zapisywać rekordy za pomocą CloudKit.

Postępuj zgodnie z instrukcjami, aby przyznać dostęp do iCloud z aplikacji:

1- Wybierz projekt w Nawigatorze projektu, a następnie otwórz kartę Ogólne.

2- W sekcji Tożsamość ustaw programistyczny identyfikator Apple ID w menu rozwijanym Zespół. (Jeśli nie jest dostępny, dodaj go w menu Xcode -> Preferencje -> Konta.

3- Przejdź do zakładki Możliwości we właściwościach projektu i włącz iCloud. Następnie wybierz „Key-Value Storage” i „CloudKit”.

wprowadź opis zdjęcia tutaj

4- Upewnij się, że te elementy są zaznaczone:

wprowadź opis zdjęcia tutaj

Jeśli wszystkie elementy są zaznaczone, aplikacja jest gotowa do użycia CloudKit.

Korzystanie z CloudKit Dashboard

Wszystkie rekordy tworzone przy użyciu kodu związanego z CloudKit można wyświetlać, edytować, a nawet usuwać w CloudKit Dashboard. Aby uzyskać dostęp do CloudKit Dashboard, przejdź tutaj .

Deska rozdzielcza składa się z kilku części:

  • Typy rekordów (które zostaną omówione później)
  • Role bezpieczeństwa (w których można ustawić bazy danych jako publiczne lub prywatne)
  • Typy subskrypcji (które aplikacja może zarejestrować w celu uzyskania powiadomień push Apple (APN), aby powiadomić Cię o zmianie rekordu)

Rodzaje rekordów

Tutaj masz listę wszystkich istniejących typów rekordów w aplikacji. Po pierwszym otwarciu aplikacji CloudKit Dashboard dla aplikacji istnieje tam typ rekordu o nazwie Użytkownicy, którego można użyć lub po prostu usunąć i użyć własnego.

Na tej stronie możesz ręcznie wpisać swoje dane. Oczywiście w większości przypadków jest to bezcelowe, ponieważ iOS SDK może sobie z tym poradzić znacznie lepiej niż pulpit nawigacyjny, ale funkcjonalność jest dostępna, jeśli wolisz. Najczęściej używa się tej strony do podglądu typów.

Zapisywanie danych do CloudKit

Aby zapisać datę w CloudKit, musimy wykonać:

  • CKRecordID (klucz unikalnego rekordu)
  • CKRecord (który zawiera dane)

Robienie klucza rekordu

Aby upewnić się, że każdy nowy identyfikator rekordu jest unikalny, używamy aktualnego znacznika czasu , który jest unikalny. Dostajemy timestamp użyciu NSDate „s metody timeIntervalSinceReferenceDate() . Ma on postać ###. ### (# są liczbami), w których wykorzystamy część całkowitą. Aby to zrobić, podzieliliśmy ciąg:

Szybki

let timestamp = String(format: "%f", NSDate.timeIntervalSinceReferenceDate())
let timestampParts = timestamp.componentsSeparatedByString(".")
let recordID = CKRecordID(recordName: timestampParts[0])

Nagrywanie

Aby zrobić rekord, powinniśmy określić typ rekordu (wyjaśniony w Korzystanie z CloudKit Dashboard) jako Użytkownicy, identyfikator jako rzecz, którą właśnie stworzyliśmy i dane. Tutaj do rekordu dodamy przykładowy tekst, zdjęcie i bieżącą datę:

Szybki

let record = CKRecord(recordType: "Users", recordID: recordID)
record.setObject("Some Text", forKey: "text")
record.setObject(CKAsset(fileURL: someValidImageURL), forKey: "image")
record.setObject(NSDate(), forKey: "date")

Cel C

CKRecord *record = [[CKRecord alloc] initWithRecordType: "Users" recordID: recordID];
[record setObject: "Some Text" forKey: "text"];
[record setObject: [CKAsset assetWithFileURL: someValidImageURL] forKey: "image"];
[record setObject: [[NSDate alloc] init] forKey: "date"];

Uwaga

Tutaj nie dodaliśmy UIImage bezpośrednio do rekordu, ponieważ, jak wspomniano w uwagach, format obrazu nie jest bezpośrednio obsługiwany w CloudKit, więc przekonwertowaliśmy UIImage na CKAsset .

Dostęp do kontenera

Szybki

let container = CKContainer.defaultContainer()
let database = container.privateCloudDatabase // or container.publicCloudDatabase

Zapisywanie rekordów w bazie danych CloudKit

Szybki

database.saveRecord(record, completionHandler: { (_, error) -> Void in
    print(error ?? "")
})


Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow