1

我正在尝试在 CoreStore 中保存记录,但它似乎没有做任何事情。

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
    // Override point for customization after application launch.
    CoreStore.defaultStack = DataStack(
        CoreStoreSchema(
            modelVersion: "V1",
            entities: [
                Entity<WorkoutModel>("Workout", isAbstract: false)
            ]
        )
    )
    CoreStore.addStorage(
        SQLiteStore(fileName: "MyStore.sqlite"),
        completion: { (result) -> Void in
            print(CoreStore.defaultStack.modelSchema.printCoreStoreSchema())
            CoreStore.perform(
                asynchronous: { (transaction) -> Void in
                    let person = transaction.create(Into<WorkoutModel>())
                    person.routine.value = "test routine"
            },
                completion: { (result) -> Void in
                    switch result {
                    case .success: self.loadRoutine()
                    case .failure(let error): print(error)
                    }
            }
            )})
    return true
}

func loadRoutine() -> Void {
    print("successfully saved.")
    var place = CoreStore.fetchAll(From<WorkoutModel>())
    if place == nil {

        _ = try? CoreStore.perform(
            synchronous: { (transaction) in

                let place = transaction.create(Into<WorkoutModel>())
                place.routine.value = "Another routine"
        }
        )
        place = CoreStore.fetchAll(From<WorkoutModel>())
    }
}

我忘了包括我的模型:

class WorkoutModel: CoreStoreObject {
    var routine = Value.Required<String>("routine", initial: "")
}

它将打印出架构,我知道我进入了该loadRoutine函数,但似乎没有其他任何事情发生。

4

0 回答 0