我有一个与 iPhone 中的核心数据一起使用的 NSManagedObject 类的子类。但是,我有一个临时“字段”(ivar),我想在该类中添加(但我不想将它保存在数据存储中)。尝试使用非正式和正式协议,但它们都给了我类似“静态变量”的行为。(它的行为类似于类变量而不是实例变量)。有什么建议吗?
我的第一次尝试,创建了测试“虚拟类”,它应该是 NSManagedObject 的子类,然后我创建了测试类别
@interface Test (custom)
NSString *_string ;
- (void)setString:(NSString *)newString;
- (NSString *)string;
@end
这些是通常的 setter 和 getter。这是我使用Test类的方式
Test *a = [[Test alloc] init];
Test *b = [[Test alloc] init];
[a setString:@"Test1"];
NSLog(@"%@", [a string]); //This will print out Test1
[b setString:@"Test2"];
NSLog(@"%@", [b string]); //This will print out Test2
NSLog(@"%@", [a string]); //Unfortunately, this will also print out Test2
我也可以直接弄乱 NSManagedObject 子类(这是我的实体),但我不认为这是这样做的方法。