Я пытаюсь сохранить некоторые данные в Cloudkit с помощью XCode, но когда я делаю sh QueryRecords в Dashboard "Нет записей" Entity "в этой базе данных" отображается, но моя "SaveFunction" сообщает "Успешно сохранено" ». Я что-то пропустил ? Я очень застрял .... Спасибо за любую помощь, которую вы можете предложить! ...
1) Часть подписи и возможностей :
- Ключ -значение хранилища проверено
- CloudKit проверено
- Контейнеры iCloud.com.myusername.nameOfTheProject
2) Xcdatamodeld
- «Сущность» содержит 5 атрибутов, первая сущность имеет значение по умолчанию
3) Часть AppDelegate
- import UIKit
- импорт CoreData
[...]
lazy var persistentContainer: NSPersistentCloudKitContainer = {
let container = NSPersistentCloudKitContainer(name: "NameOfContainer")
container.loadPersistentStores(completionHandler: { (storeDescription, error) in
if let error = error as NSError? {
fatalError("Unresolved error \(error), \(error.userInfo)")
}
})
return container
}()
// MARK: - Core Data Saving support
func saveContext () {
let context = persistentContainer.viewContext
if context.hasChanges {
do {
try context.save()
} catch {
let nserror = error as NSError
fatalError("Unresolved error \(nserror), \(nserror.userInfo)")
}
}
}
4) ViewController
- импорт UIKit
- import CloudKit
class ViewController: UIViewController {
let myContainer = CKContainer (идентификатор: "iCloud.com.MyUserName.NameOfTheProject")
override func viewDidLoad() {
super.viewDidLoad()
let artworkRecord = CKRecord(recordType: "Entity")
artworkRecord["customFieldName"] = "xxxx" as NSString
// Do any additional setup after loading the view.
let privateDatabase = myContainer.privateCloudDatabase
privateDatabase.save(artworkRecord) { (record, error) in
if let error = error {
print(error)
// Insert error handling
return
}
print("Saved successfully")
// Insert successfully saved record code
}
}
}
5) CloudKit Dashboard
- Выбранный контейнер является хорошим
- База данных: Частная база данных с тем же используемым Id в Xcode
- Zon e: _DefaultZone
- Пользовательское поле «customFieldName» отображается («запрашиваемое, доступное для поиска,
сортируемое») как xcdatamodeld - «recordName», созданное с типом индекса QUERYABLE