IOS 5 のみ、ARC あり。私のCore Dataモデルクラスでは:
// 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
「Venus」と「Mars」はMagicalRecordを使って作成しています。私のView Controllerでは、ラベルとボタンを使用して上記をテストしています。テストによると、私が火星を「訪問」すると、金星も訪問されるようになります。ivar VisitedByHumans を Core-Data 以外のプロパティに切り替えると、期待どおりに動作します。だから私はもう「立ち往生」していませんが、ivar のことを理解したいと思っています。