创建初始对象,将其插入ManagedObjectContext,并保存上下文。然后将此对象设置为管理CoreData堆栈的单例类的属性。
当从另一个类引用时,此原始对象的类型错误(NSCFString)。另一方面,如果获取了对象,那么它是正确的类并且工作正常。
NSArray *pdaSetupRecords = [results fetchedObjects];
//If this is the initial launch of the application, create
//a PDASetup object and save the context, otherwise set
//pdaSetup to the fetched instance.
if ([pdaSetupRecords count] < 1) {
PDASetup *newPdaSetup = (PDASetup *) [NSEntityDescription insertNewObjectForEntityForName:@"PDASetup" inManagedObjectContext:managedObjectContext];
[self saveContext];
pdaSetup = newPdaSetup;
NSLog(@"SystemUtility - PDASetup object created and saved.");
} else {
pdaSetup = [pdaSetupRecords objectAtIndex:0];
}
您可以看到只有一个PDASetup对象。创建PDASetup对象时发生此问题。如果我重新运行应用程序,并且获取了PDASetup对象,一切都很好。
有什么想法吗?
答案 0 :(得分:0)
你的意思是写:
pdaSetup = [newPdaSetup retain];
或
self.pdaSetup = newPdaSetup; //with a retained @property
您的应用是否崩溃告诉您类型是NSCFString?可能是内存地址被字符串覆盖了。