我不确定使用transient属性是否适合我的情况。我从服务器和商店获取核心数据中的一些订阅源。我在TableView中显示所有这些Feed。有多种类型的Feed,因此单元格布局和子视图因每个Feed而异。在一些feed中,我需要设置一个临时变量(BOOL和Integer。所以NSNumber我知道)。用例是,用户应该能够放大和折叠一些单元格(一种“阅读更多...”链接)。所以这个状态,我需要保持每个feed(NSManagedObject)对象。此状态将一直存在,直到应用程序运行。它不应该保存到持久性存储中,因为当用户打开应用程序时,所有的Feed都应该是新鲜的。
我刚刚添加属性瞬态,但似乎无法正常工作。我在实体中添加了“NSNumber selected”属性作为瞬态和添加属性,并在NSManagedObject文件中添加了@dynamic。我搜索了论坛,没有任何解决方案与我的匹配。我尝试过很多样本,但实在令人困惑......
接口文件是,
@interface FeedItemBase : NSManagedObject {
@private
}
@property (nonatomic, retain) NSDate * timestamp;
@property (nonatomic, retain) NSString * type;
@property (nonatomic, retain) NSNumber * premium;
@property (nonatomic, retain) NSNumber *selected; //This is what I added
@end
实施文件是,
@implementation FeedItemBase
@dynamic timestamp;
@dynamic type;
@dynamic premium;
@dynamic selected; //This is what I added
@end
所以请帮助我。
答案 0 :(得分:1)
如果您不需要查询它,只需将常规BOOL添加到您的托管对象子类。
@property (nonatomic, assign) BOOL selected; //This is what I added
并在您的.m文件中
@synthesized selected = _selected;
核心数据中的瞬态属性有很多奇怪的边缘情况;根据我的经验,如果可以,我会避开它们。