Iphone insertNewObjectForEntityForName:inManagedObjectContext:返回NSNumber错误?

Iphone insertNewObjectForEntityForName:inManagedObjectContext:返回NSNumber错误?,iphone,core-data,nsmanagedobject,nsmanagedobjectcontext,Iphone,Core Data,Nsmanagedobject,Nsmanagedobjectcontext,我对CoreData比较精通,并且已经使用了好几年,几乎没有什么困难。突然间,我被一个错误弄得目瞪口呆。为了我的生命,我不知道为什么 insertNewObjectForEntityForName:inManagedObjectContext: 突然间又返回了一些奇怪的NSNumber实例。GDB说返回的对象属于NSManagedObject的正确自定义子类,但是当我打印NSManagedObject本身的描述时,我得到以下错误: *** -[NSCFNumber objectID]: unr

我对CoreData比较精通,并且已经使用了好几年,几乎没有什么困难。突然间,我被一个错误弄得目瞪口呆。为了我的生命,我不知道为什么

insertNewObjectForEntityForName:inManagedObjectContext:
突然间又返回了一些奇怪的NSNumber实例。GDB说返回的对象属于NSManagedObject的正确自定义子类,但是当我打印NSManagedObject本身的描述时,我得到以下错误:

*** -[NSCFNumber objectID]: unrecognized selector sent to instance 0x3f26f50
更奇怪的是,我能够使用setValue:forKey设置一些关系和属性,一切都很好。但当我试图设置一次特定的关系时,我会出现以下错误:

*** -[NSCFNumber entity]: unrecognized selector sent to instance 0x3f26f50
以前有人遇到过这样的事情吗?我尝试过清理所有目标,重新启动一切,甚至将模型更改为所讨论的关系都是一对一,而不是一对多。没有任何区别。

我以前遇到过“无法识别的选择器发送到实例0x…”错误,在这种情况下,我希望位于内存地址“指针”的对象已被其他对象替换。以这种情况为例:

NSAutoReleasePool *pool = [[NSAutoReleasePool alloc] init]; NSString *someString = [NSString stringWithString:@"some string"]; // autoreleased object returned [pool drain]; [pool release]; /* some other code executes */ // since the string behind the someString variable has been autoreleased at this point, the memory that someString points to may be occupied by some other data type. the following may through an EXC_BAD_ACCESS error, or it may try and execute the selector on whatever is occupying that memory space int stringLength = [someString length]; NSAutoReleasePool*池=[[NSAutoReleasePool alloc]init]; NSString*someString=[NSString stringWithString:@“some string”];//返回的自动释放对象 [泳池排水沟]; [池释放]; /* 执行其他一些代码 */ //由于someString变量后面的字符串此时已自动释放,因此someString指向的内存可能被其他数据类型占用。以下情况可能是由于EXC_BAD_访问错误造成的,或者它可能会尝试对占用该内存空间的任何对象执行选择器 int stringLength=[someString长度]; 这个例子非常简单,我的语义学可能有点离题,但这可能是您的案例中发生的更复杂的事情吗?也许可以试试:

[[NSEntityDescription insertNewObjectForEntityForName:@"entityName" inManagedObjectContext:managedObjectContext] retain] [[NSEntityDescription insertNewObjectForEntityForName:@“entityName”在managedObjectContext:managedObjectContext中]保留] 看看会发生什么?

可能会重复