私はCoreDataデータモデルの整数16の属性(場所)を持っていますが、整数はフラグにすぎません。クラスのインスタンスを使用するときはNSStringとして読み書きしたいと思います。Core Data仮想属性を正しく実装する方法は?
管理対象オブジェクトのルールを守ってこれを実装する方法はありますか。
私が持っている必要がまだ必要です:
@property (nonatomic, retain) NSNumber *location;
/////
@dynamic location;
または私はこのような何かを行うことができます:あなたは、文字列のplist内の名前、またはアクセスの定数を保存しないのはなぜ
@interface Game : NSManagedObject
@property(nonatomic, retain) NSString *location;
@end
@interface Game(PrimitiveAccessors)
- (NSNumber *)primitiveLocation;
- (void)setPrimitiveLocation:(NSNumber *)newLocation;
@end
@implementation Game
@dynamic location;
- (NSString *)location
{
[self willAccessValueForKey:@"location"];
NSString *location = nil;
if ([self primitiveLocation] == 0)
{
location = @"Home";
}
if ([self primitiveLocation] == 1)
{
location = @"Away";
}
[self didAccessValueForKey:@"location"];
return location;
}
- (void)setLocation:(NSString *)newLocation
{
[self willChangeValueForKey:@"location"];
if (newLocation == @"Home")
{
[self setPrimitiveLocation:0];
}
if (newLocation == @"Away")
{
[self setPrimitiveLocation:1];
}
[self didChangeValueForKey:@"location"];
}
@end
です。これはNSValueTransformerの仕事のようです。 – rickster
私はそれを確認します、ありがとう – Cameron