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
감사합니다. 감사합니다. – Cameron