- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我运行我的应用程序,所以总是在 [context executeFetchRequest:request error:&error]
上崩溃,因为多个异步数据保存在核心数据中。那么如何处理这个问题呢?我正在尝试这段代码。
NSManagedObjectContext *context =[appDelegate managedObjectContext];
NSFetchRequest *request = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Client" inManagedObjectContext:context];
NSPredicate *predicate = [NSPredicate predicateWithFormat:[NSString stringWithFormat:@"clientId = %@",clientId]];
[request setPredicate:predicate];
[request setEntity:entity];
NSError *error = nil;
NSMutableArray *mutableFetchResults =(NSMutableArray *)[context executeFetchRequest:request error:&error];
if (mutableFetchResults == nil)
{
NSLog(@"ERROR - %@", error);
}
if (mutableFetchResults!=nil && [mutableFetchResults count]>0)
{
return [mutableFetchResults objectAtIndex:0];
}
else
{
return nil;
}
这是我的崩溃日志:
Terminating app due to uncaught exception 'NSGenericException', reason: '*** Collection <__NSCFSet: 0x7fac74d0a290> was mutated while being enumerated.'
*** First throw call stack:
(
0 CoreFoundation 0x000000010baa3e65 __exceptionPreprocess + 165
1 libobjc.A.dylib 0x000000010b0c8deb objc_exception_throw + 48
2 CoreFoundation 0x000000010baa37c4 __NSFastEnumerationMutationHandler + 132
3 CoreData 0x0000000109f486ef -[NSManagedObjectContext executeFetchRequest:error:] + 2111
4 CuztomisePharma 0x0000000109acbec9 -[SyncManager getClientByClientId:] + 489
5 CuztomisePharma 0x0000000109ac9cf6 -[SyncManager saveClient:] + 214
6 CuztomisePharma 0x0000000109ac98a6 -[SyncManager firstTimeSync] + 2406
7 CuztomisePharma 0x0000000109a31029 -[LoginViewController loginServerCall] + 1273
8 Foundation 0x000000010ad52dfb __NSThread__start__ + 1198
9 libsystem_pthread.dylib 0x000000010e37299d _pthread_body + 131
10 libsystem_pthread.dylib 0x000000010e37291a _pthread_body + 0
11 libsystem_pthread.dylib 0x000000010e370351 thread_start + 13
)
2016-05-25 14:23:08.682 CuztomisePharma[6615:146656] The selected car is: (
"<Drug: 0x7fac75d18150> (entity: Drug; id: 0xd0000000002c001e <x-coredata://AE430EFF-FF79-48C9-BDB3-08707B8B172F/Drug/p11> ; data: <fault>)"
)
libc++abi.dylib: terminating with uncaught exception of type NSException
最佳答案
NSManagedObjectContext
不是线程安全的。如果在 main thread
上创建上下文,则只能在 main thread
上访问上下文。
因此您必须在主线程中运行 executeFetchRequest
,您可以使用 performBlock
来安排它在自己的线程上运行。
[context performBlock:^{
NSMutableArray *mutableFetchResults =(NSMutableArray *)[context executeFetchRequest:request error:&error];
}];
注意:如果您在旧的 NSConfinementConcurrencyType
限制模型中初始化上下文,则 performBlock 将不起作用。
希望这对您有所帮助。
关于ios - 崩溃 [上下文 executeFetchRequest :request error:&error] always in Core Data?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37431938/
我在使用 Core Data 时遇到了一个奇怪的问题。目标是iOS 5.0 这行代码: NSArray *results = [self executeFetchRequest:request
我正在尝试在 iOS 7 应用程序中实现 Core Data(并且之前已成功完成)。但是,当我执行executeFetchRequest 方法时,应用程序崩溃了。下面添加了最相关的代码: #impor
我的 Objective-C 代码中有一个奇怪的问题。我有一个 View Controller ,我在“viewWillAppear”中调用自己的 loadData 方法。这很酷,直到 View 第三
必须在创建该线程的同一线程中使用AFAIK ManagedObjectContext,否则可能由于锁定而冻结。 我遇到的情况是尝试在主线程中创建executeFetchRequest:error:时被
我的提取请求工作正常,我可以毫无问题地获取我提取的对象。我想做的是在实体不存在的情况下处理错误。问题是,我无法处理错误,因为当我调用 executeFetechRequest: error: 时应用程
我的 View Controller 中有一个“书籍”方法,它获取核心数据中的所有书籍并返回它们的数组。我经常依赖 self.books - 当我需要知道它在某个索引处是哪本书、有多少本书等时,boo
我是一名 iOS 开发新手。我正在尝试将 executeFetchRequest 的结果导入到我创建的结构中,以便稍后查看到表中。我在 func getTasks() 中得到“数组索引超出范围”,我很
我正在使用 AppDelegate 的默认 managedObjectContext,当我在其上执行 executeFetchRequest 时,它永远不会转到下一行或因错误而崩溃。这是在后台线程上进
我在 Core Data 中遇到了一个奇怪的问题。基本上,我有一个空的核心数据,其中包含学生和教师等多个模型。我尝试执行以下代码: NSFetchRequest *request = [NSFetch
我正在做一个 Core Data 教程,但我总是遇到崩溃。这是一个 objc_exception_throw。 我创建了一个名为 loadTableData 的方法并在 viewDidLoad 中调用
我最近在使用我的 iOS 应用程序时遇到了一个奇怪的问题,并且不知道如何解决它。 在第一次运行期间,有一个在后台运行的方法,它从游戏中下载项目列表和项目属性,并将其存储在 Core Data 中以供以
我正在使用 Core Data 存储一个包含可转换 NSDictionary 属性的实体。存储后,我可以在 .SQLite 文件中看到一个对象,所以我认为(?)我在那里很好。但是,当我尝试检索整个实体
我不知道发生了什么,但它突然在 Visibility.m 实体类的下一行崩溃。我没有对这些类(class)进行任何更改,并且它曾经完美地工作。唯一的问题是我错误地删除了模型。我已经从备份中恢复它并再次
我开发了一个针对iPhone的应用程序,它使用CoreData。在模拟器上运行时,一切正常,但是在设备上运行时,出现以下错误: "*** Terminating app due to uncaught
我正在尝试将外部数据添加到 SQLite 中/使用 Core Data 更新现有数据。 基本上,我从外部 Web 服务获得了一个 JSON,我正在使用以下代码来确定我是应该在数据库中添加新对象还是更新
我在使用核心数据时遇到奇怪的数据丢失问题。 我使用以下代码将记录保存到核心数据。 for (int i = 0; i < [domains count]; i++){ NSSt
附件是我的代码。 给我问题的那一行是 let fetchRequest = try moc.executeFetchRequest(fetchRequest) as! [AppSettings] 似乎
在我的 ViewController 中打招呼: [super viewDidLoad]; context = [[AppDelegate sharedAppDelegate] managedObje
这个问题在这里已经有了答案: Swift 2 ( executeFetchRequest ) : error handling (5 个答案) 关闭 7 年前。 https://www.dropbo
我有一个 saveMOC,它是 mainMOC 的直接父级,我需要在线获取另一个 tmpMOC 以免阻塞我的 UI,同时从互联网上获取大量记录。 我的应用卡住了。我可以将其缩小到这一点:
我是一名优秀的程序员,十分优秀!