objective-c - 发送到实例的核心数据奇怪的无法识别的选择器

标签 objective-c core-data

亲爱的社区。我尝试从其他线程的主 AppDelegate 中的托管对象上下文中获取一些数据。

    NSError *error = nil;
    AppDelegate *appDelegate = [[NSApplication sharedApplication] delegate];

    NSFetchRequest *requestCodesList = [[[NSFetchRequest alloc] init] autorelease];
    [requestCodesList setEntity:[NSEntityDescription entityForName:@"CodesvsDestinationsList"
                                            inManagedObjectContext:[appDelegate managedObjectContext]]];
    [requestCodesList setPredicate:[NSPredicate predicateWithFormat:@"(%K.carrier.name == %@) AND (%K.prefix == %@) AND (code == %@) AND (originalCode == %@)",
                                    destinationTypeRelationShipName,
                                    carrierName,
                                    destinationTypeRelationShipName,
                                    prefix,
                                    [destinationParameters valueForKey:@"code"],
                                    [destinationParameters valueForKey:@"originalCode"]]];
                                    //[destinationParameters valueForKey:@"originalCode"]]];
    NSLog(@" Predicate is:%@ START",requestCodesList);
    NSArray *codesInLocalSystem = [[appDelegate managedObjectContext] executeFetchRequest:requestCodesList error:&error];

我只是从主 MOC 读取信息,所以,这不可能是线程安全的问题,因为我没有在那里写任何东西。问题是某个时候开始。这是我收到的错误:

2010-12-16 12:55:05.162 snow[53293:3a0b] -[NSManagedObject isTemporaryID]: 无法识别的选择器发送到实例 0x11836db00

*** Call stack at first throw:
(
    0   CoreFoundation                      0x00007fff84cb47b4 __exceptionPreprocess + 180
    1   libobjc.A.dylib                     0x00007fff87ec40f3 objc_exception_throw + 45
    2   CoreFoundation                      0x00007fff84d0e110 +[NSObject(NSObject) doesNotRecognizeSelector:] + 0
    3   CoreFoundation                      0x00007fff84c8691f ___forwarding___ + 751
    4   CoreFoundation                      0x00007fff84c82a68 _CF_forwarding_prep_0 + 232
    5   CoreData                            0x00007fff85374341 getValueCore + 33
    6   CoreData                            0x00007fff853742e4 _PFCMT_GetValue + 20
    7   CoreData                            0x00007fff8537422d -[NSManagedObjectContext(_NSInternalAdditions) _retainedObjectWithID:optionalHandler:withInlineStorage:] + 45
    8   CoreData                            0x00007fff85376edd _PF_FulfillDeferredFault + 541
    9   CoreData                            0x00007fff8537aab7 _sharedIMPL_pvfk_core + 87
    10  CoreData                            0x00007fff8537ac28 -[NSManagedObject(_PFDynamicAccessorsAndPropertySupport) _genericValueForKey:withIndex:flags:] + 40
    11  CoreData                            0x00007fff853804be -[NSManagedObject valueForKey:] + 270
    12  Foundation                          0x00007fff854b9f6f -[NSObject(NSKeyValueCoding) valueForKeyPath:] + 357
    13  Foundation                          0x00007fff854b9f82 -[NSObject(NSKeyValueCoding) valueForKeyPath:] + 376
    14  Foundation                          0x00007fff8551ca22 -[NSFunctionExpression expressionValueWithObject:context:] + 530
    15  Foundation                          0x00007fff854e03a7 -[NSComparisonPredicate evaluateWithObject:substitutionVariables:] + 223
    16  Foundation                          0x00007fff8551c7ba -[NSCompoundPredicateOperator evaluatePredicates:withObject:substitutionVariables:] + 235
    17  Foundation                          0x00007fff8551c690 -[NSCompoundPredicate evaluateWithObject:substitutionVariables:] + 265
    18  CoreData                            0x00007fff85364e41 -[NSManagedObjectContext executeFetchRequest:error:] + 1361
    19  snow                                0x0000000100014a5e -[AppController externalDestinationsForCodeIsAlresdyInLocalDatabaseForCarrierName:withEnabledState:withDestinationParameters:withDestinationTypeRelationShipName:withPrefix:withExternalRateNumber:withAddedDestinations:withCheckForLocalAddedDestinations:] + 862
    20  snow                                0x00000001000158aa -[AppController updateDestinationListforCarrier:destinationType:] + 2586
    21  snow                                0x0000000100015d72 -[AppController makeUpdatesForCarrier:andTypeOfOperation:forDirection:] + 754
    22  snow                                0x00000001000160a1 -[AppController main] + 689
    23  Foundation                          0x00007fff854d3de4 -[__NSOperationInternal start] + 681
    24  Foundation                          0x00007fff855b2beb __doStart2 + 97
    25  libSystem.B.dylib                   0x00007fff84f452c4 _dispatch_call_block_and_release + 15
    26  libSystem.B.dylib                   0x00007fff84f23831 _dispatch_worker_thread2 + 239
    27  libSystem.B.dylib                   0x00007fff84f23168 _pthread_wqthread + 353
    28  libSystem.B.dylib                   0x00007fff84f23005 start_wqthread + 13
)
terminate called after throwing an instance of 'NSException'

最佳答案

为了其他人遇到这个问题 - 您可能正在将 NSManagedObject 子类传递给需要 NSManagedObjectID 的方法。检查您的方法签名是否在 .h 和 .m 文件之间对齐。

关于objective-c - 发送到实例的核心数据奇怪的无法识别的选择器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4460070/

相关文章:

ios - 成功调用 api 后未调用 cellForRowAtIndexPath

ios - 我们可以检查允许应用程序请求跟踪切换是否打开

ios - React Native 对 RCTBridgeModule.h 中 'RCTMethodInfo' 的重新定义

core-data - 服务器端更改的 Restkit.Delete

ios - 为什么 NSManagedObjectContextObjectsDidChangeNotification 在回滚后用删除的对象调用两次?

swift - 核心数据编码模式

ios - 核心数据1对多选择谓词

ios - Fabric 在 iOS 上有 BUG

iphone - 数据模型中的 Char* 内存被回收?

objective-c - 从 CoreData 检索到的 TableView 上的图像