私はiPhoneの開発に不慣れです。iPhoneのコアデータを使用していくつかのデータを保存しようとしています。保存しようとすると、次のようなエラーが発生します。
Detected an attempt to call a symbol in system libraries that is not present on the
_Unwind_Resume called from function -[NSSQLAdapter
_newSelectStatementWithFetchRequest:ignoreInheritance:] in image CoreData.
2012-05-28 12:05:38.179 FYPV1[6460:207] *** Terminating app due to uncaught exception
'NSInvalidArgumentException', reason: 'Unimplemented SQL generation for predicate
(surname MATCHES $search_surname)'
*** Call stack at first throw:
(
0 CoreFoundation 0x02668b99 __exceptionPreprocess + 185
1 libobjc.A.dylib 0x027b840e objc_exception_throw + 47
2 CoreData 0x0003be86 -[NSSQLGenerator generateSQLStatementForFetchRequest:ignoreInheritance:countOnly:] + 1254
3 CoreData 0x0003b6f0 -[NSSQLAdapter _newSelectStatementWithFetchRequest:ignoreInheritance:] + 480
4 CoreData 0x0003b501 -[NSSQLAdapter newSelectStatementWithFetchRequest:] + 49
5 CoreData 0x0003b3ae -[NSSQLCore newRowsForFetchPlan:] + 430
6 CoreData 0x0003ab09 -[NSSQLCore objectsForFetchRequest:inContext:] + 297
7 CoreData 0x0003a6fe -[NSSQLCore executeRequest:withContext:error:] + 206
8 CoreData 0x000e891c -[NSPersistentStoreCoordinator executeRequest:withContext:error:] + 1084
9 CoreData 0x00037897 -[NSManagedObjectContext executeFetchRequest:error:] + 359
10 FYPV1 0x0000715f -[Contacts saveContacts:] + 367
11 UIKit 0x001fc7f8 -[UIApplication sendAction:to:from:forEvent:] + 119
12 UIKit 0x00287de0 -[UIControl sendAction:to:forEvent:] + 67
13 UIKit 0x0028a262 -[UIControl(Internal) _sendActionsForEvents:withEvent:] + 527
14 UIKit 0x00288e0f -[UIControl touchesEnded:withEvent:] + 458
15 UIKit 0x002203d0 -[UIWindow _sendTouchesForEvent:] + 567
16 UIKit 0x00201cb4 -[UIApplication sendEvent:] + 447
17 UIKit 0x002069bf _UIApplicationHandleEvent + 7672
18 GraphicsServices 0x02f48822 PurpleEventCallback + 1550
19 CoreFoundation 0x02649ff4 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 52
20 CoreFoundation 0x025aa807 __CFRunLoopDoSource1 + 215
21 CoreFoundation 0x025a7a93 __CFRunLoopRun + 979
22 CoreFoundation 0x025a7350 CFRunLoopRunSpecific + 208
23 CoreFoundation 0x025a7271 CFRunLoopRunInMode + 97
24 GraphicsServices 0x02f4700c GSEventRunModal + 217
25 GraphicsServices 0x02f470d1 GSEventRun + 115
26 UIKit 0x0020aaf2 UIApplicationMain + 1160
27 FYPV1 0x00001e59 main + 121
28 FYPV1 0x00001dd5 start + 53
)
terminate called after throwing an instance of 'NSException'
この問題を解決する方法。
これがデータを保存するための私のコードです。
NSError *error;
NSDictionary *subs = [NSDictionary
dictionaryWithObjectsAndKeys:fetchContact.first_name, @"search_firstname",fetchContact.surname,@"search_surname", nil];
NSFetchRequest *fetchRequestCheckNil =
[managedObjectModel fetchRequestFromTemplateWithName:
@"Fetchaddcontact" substitutionVariables:subs];
NSArray *fetchedObjects=[context executeFetchRequest:fetchRequestCheckNil error:nil];
if ([fetchedObjects count]>0) {
for (ENTITYADDCONTACTS *contactDetails
in fetchedObjects) {
[self updateDBModel:contactDetails];
}
}
else {
ENTITYADDCONTACTS *contactDetails;
contactDetails = [NSEntityDescription
insertNewObjectForEntityForName:@"ENTITYADDCONTACTS"
inManagedObjectContext:context];
[self updateDBModel:contactDetails];
}
if (![context save:&error]) {
NSLog(@"Whoops, couldn't save: %@", [error localizedDescription]);
}