Cloudkit - Dashboard - в этой базе данных нет записей "Entity" - PullRequest
0 голосов
/ 25 апреля 2020

Я пытаюсь сохранить некоторые данные в 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
...