gpt4 book ai didi

ios - 使用 Restkit MainQueueManagedObjectContext 的奇怪崩溃 - EXC_BAD_ACCESS

转载 作者:行者123 更新时间:2023-11-29 10:44:50 25 4
gpt4 key购买 nike

有时,当我在 RestKit MainQueueManagedObjectContext 上调用 saveToPersistent 时,我会收到以下错误并且应用程序崩溃。

CoreData: error: Serious application error.  Exception was caught during Core Data change processing.  This is usually a bug within an observer of NSManagedObjectContextObjectsDidChangeNotification.  -[UIBarButtonItem controllerWillChangeContent:]: unrecognized selector sent to instance 0x21e70300 with userInfo (null)

[UIBarButtonItem controllerWillChangeContent:]: unrecognized selector sent to instance 0x21e70300 with userInfo (null)

似乎存在某种线程问题。

我通过这样的方法保存上下文:

- (BOOL)saveMainContext
{
__block BOOL contextSaved = NO;
[[[[CoreDataManager sharedInstance] objectStore] mainQueueManagedObjectContext] performBlockAndWait:^{
NSError *error = nil;
if ([[[[CoreDataManager sharedInstance] objectStore] mainQueueManagedObjectContext] saveToPersistentStore:&error]) {
contextSaved = YES;
}
}];

return contextSaved;
}

它在带有 EXC_BAD_ACCESS 的 saveToPersistent 方法上崩溃。我该如何解决这个问题,我的 NSFetchresultscontroller 调用 UIBarButtonItem 上的方法的原因可能是什么?

最佳答案

您的saveMainContext 方法应该只从主线程调用并且应该简单地实现为:

- (BOOL)saveMainContext
{
NSError *error = nil;
if ([[[[CoreDataManager sharedInstance] objectStore] mainQueueManagedObjectContext] saveToPersistentStore:&error]) {
contextSaved = YES;
} else {
NSLog(@"Save error: %@", error);
}

return contextSaved;
}

调用 UIBarButtonItem 的实例表明您有一个内存管理问题,因为正在观察上下文保存的东西在它被释放之前不会自行删除。检查你所有的观察者。

关于ios - 使用 Restkit MainQueueManagedObjectContext 的奇怪崩溃 - EXC_BAD_ACCESS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22744773/

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