初始Core Data对象的类型错误。

时间:2012-02-10 19:23:22

标签: objective-c ios core-data

创建初始对象,将其插入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对象,一切都很好。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

你的意思是写:

pdaSetup = [newPdaSetup retain];

self.pdaSetup = newPdaSetup; //with a retained @property

您的应用是否崩溃告诉您类型是NSCFString?可能是内存地址被字符串覆盖了。