コアデータに複数の非同期データが保存されるため、私は自分のアプリを実行するので、常に[context executeFetchRequest:request error:&error]
にクラッシュします。だからこの問題をどう扱うか?私はこのコードを試しています。コアデータの[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
クラッシュログがありますか? – Larme
@Larme upperは私のクラッシュログです。 –
すべてのスレッドとコンテキストについて教えてください。バックグラウンドスレッドのメインコンテキストを使用しているようです... – Wain