gpt4 book ai didi

ios - MagicalRecord 不保存数据

转载 作者:可可西里 更新时间:2023-11-01 04:21:11 25 4
gpt4 key购买 nike

我正在尝试 MagicalRecord 的一些非常基本的实现,以掌握它并遇到以下问题。

当我保存一个条目然后获取该类型的条目时,它会出现我刚刚保存的条目。但是,当我保存条目、关闭应用程序、重新启动它然后获取时,它是空的。

保存代码:

- (void)createTestTask{
NSManagedObjectContext *localContext = [NSManagedObjectContext contextForCurrentThread];

Task *task = [Task createInContext:localContext];
task.tName = @"First Task";
task.tDescription = @"First Task created with MagicalRecord. Huzzah!";


NSError *error;
[localContext save:&error];
if (error != Nil) {
NSLog(@"%@", error.description);
}
}

获取代码:(我只想知道这里是否真的保存了任何东西)

- (void) fetchTasks{
NSArray *tasks = [Task findAll];
NSLog(@"Found %d tasks", [tasks count]);
}

我确定我在这里遗漏了一些东西,但我似乎在 stackoverflow 或我看过的教程中找不到任何东西。

欢迎任何帮助。

最佳答案

我不得不问一个明显的“是否已插入”问题:您是否使用 +[MagicalRecord setupCoreDataStack] 方法之一初始化核心数据堆栈?

您的堆栈是否正确初始化?也就是说,您的商店和模型兼容吗?如果不是,MagicalRecord(更恰本地说,Core Data)将在没有持久存储的情况下设置整个堆栈。这很烦人,因为它看起来一切都很好,直到它无法保存到商店......因为没有商店。 MagicalRecord 有一个 +[MagicalRecord currentStack] 方法,您可以使用它来检查堆栈的当前状态。设置堆栈后,请在调试器中尝试。

假设您这样做了,要检查的另一件事是错误日志。如果你使用

[localContext MR_saveToPersistentStoreAndWait];

任何错误都应该记录到控制台。通常,当您在应用程序的后续运行中看不到数据时,这是因为在您认为调用保存时数据并未保存。反过来,保存不会发生,因为您的数据未正确验证。一个常见的例子是,如果你有一个必需的属性,而在你调用保存时它仍然是 nil。 “正常”核心数据根本不记录这些问题,因此您可能认为它有效,但实际上保存操作失败了。另一方面,MagicalRecord 将捕获所有这些错误并将它们记录到控制台,至少告诉您数据发生了什么。

关于ios - MagicalRecord 不保存数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20217192/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com