我在尝试使用NSManagedObject子类时遇到了一个奇怪的问题。我的代码看起来像这样:
[self.navigationController popViewControllerAnimated:NO];
MyController *myController = [[MyController alloc] init];
myController.managedObject = managedObject;
非常简单吧?但由于某种原因,它在用于设置“managedObject”的合成函数中崩溃。我尝试用这样的东西替换函数:
- (void) SetManagedObject:(NSManagedObjectSubClass*) obj
{
if ( managedObject )
[managedObject release];
managedObject = obj;
--> [managedObject retain];
}
在保留呼叫中崩溃了...我很难过,不知道从哪里开始调试这个。
答案 0 :(得分:1)
您的代码存在一些问题:
SetManagedObject:
并使用@synthesized
指令)managedObject
可能已被释放(这就是崩溃者)SetManagedObject:
有错误的情况。如果您决定提供自定义设置器,请使用s etManagedObject:
。我使用的是合成属性。删除你的setter代码,声明@property(retain) XYManagedObjectSubClass
managedObject;在.h文件中,并在实现中使用@synthesize
。