仅限 IOS 5,带有 ARC。在我的核心数据模型类中:
// Planet.h //
#import <Foundation/Foundation.h>
#import <CoreData/CoreData.h>
@interface Planet : NSManagedObject
@property (nonatomic, retain) NSString *name;
@property (nonatomic, retain) NSNumber *diameter_km;
@property (nonatomic, retain) NSNumber *mass_kg;
-(void) setVisited:(BOOL)flag;
-(BOOL) isVisited;
@end
// Planet.m //
//#import "Planet.h"
@implementation Planet
@dynamic name;
@dynamic diameter_km;
@dynamic mass_kg;
BOOL visitedByHumans; // not a core data entity; just an ivar
-(void)setVisited:(BOOL)flag {
visitedByHumans = flag;
}
-(BOOL)isVisited {
return visitedByHumans;
}
@end
我使用 MagicalRecord 创建“Venus”和“Mars”。在我的视图控制器中,我使用标签和按钮来测试上述内容。测试表明,当我“访问”火星时,金星也会被访问。如果我将 ivarvisitedByHumans 切换为非核心数据属性,它会按预期工作。所以我不再“卡住”,但我想了解 ivar 的事情。