我有一個在CoreData數據模型中的整數16屬性(位置), ,但整數只是一個標誌,我想在使用類的實例時讀/寫爲NSString。如何正確實現核心數據虛擬屬性?
我應該如何實現這一點,同時保持管理對象的規則?
我需要還需要有:
@property (nonatomic, retain) NSNumber *location;
/////
@dynamic location;
或者我可以做這樣的事情:
@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 2012-03-24 00:56:52
我會檢查一下,謝謝 – Cameron 2012-03-24 08:56:33