【发布时间】:2011-09-25 23:12:31
【问题描述】:
我有一个 NSManagedObject,它的一些属性在程序开始时初始化。当我稍后引用这个对象时,它似乎有问题,并且属性不可访问。我不确定我需要做什么。
这与添加到程序中的一项新功能有关,该程序在所有其他方面都与核心数据顺利运行。
这是一个代码 sn-p,它被初始化为单例的属性值。 (我的代码的许多部分都可以访问该单例):
favoritesCollection = [[SearchTerms alloc] initWithEntity:[NSEntityDescription entityForName:@"SearchTerms" inManagedObjectContext:moc] insertIntoManagedObjectContext:moc];
favoritesCollection.keywords = @"Favorites List";
favoritesCollection.isFavoritesCollection = [NSNumber numberWithBool:YES];
favoritesCollection.dateOfSearch = [NSDate NSCExtendedDateWithNaturalLanguageString:@"4000"];
favoritesCollection.pinColorIndex = 0;
[moc save:&error];
NSLog(@"(favoritesCollection) = %@", favoritesCollection);
}
return favoritesCollection;
当我使用 NSLog 查看 favoritesCollection 时,我看到了这一点(我添加了一些换行符以使其更易于阅读):
(favoritesCollection) =
<SearchTerms: 0x5c28820>
(entity: SearchTerms; id: 0x5a6df90
<x-coredata://3936E19F-C0D0-4587-95B6-AA420F75BF78/SearchTerms/p33> ;
data: {
dateOfSearch = "4000-09-25 12:00:00 -0800";...*more things after this*
返回后,另一个NSLog显示内容完好。
当我稍后引用这个实例时,我可以在调试器中看到这个:
<SearchTerms: 0x5c28820>
(entity: SearchTerms; id: 0x5a6df90
<x-coredata://3936E19F-C0D0-4587-95B6-AA420F75BF78/SearchTerms/p33> ;
data: <fault>)
仅此而已。
所以我相信该对象被保留(我明确地将它保留在它返回的地方)。我有僵尸,它看起来不像僵尸。
我程序中只有一个managedObjectContext,在单例中维护。
那么发生了什么,我该如何访问已保存的属性?
【问题讨论】:
标签: objective-c core-data nsmanagedobject nsmanagedobjectcontext