0

私の NSManagedObject サブクラスでは、特定の属性をインターフェイスでは読み取り専用として指定し、実装では読み取り書き込みとして指定したいと考えています。私は以前に他のクラスでこれを行いました。しかし、Core Data で生成されたサブクラスは実装で @dynamic を使用しており、@property で実行できるように @dynamic に readwrite デコレータを追加できないようです。

これは可能ですか?

4

1 に答える 1

0

ヘッダー ファイルでプロパティを次のように宣言し、readonly実装でセッターに独自の実装を提供できます。

(ARC使用)

@interface Person : NSManagedObject

@property (nonatomic, readonly) NSString * name;

- (void)changeName;

@end

@implementation Person

@dynamic name;

- (void)changeName
{
    self.name = @"Test";
}

- (void)setName:(NSString *)name
{
    [self willChangeValueForKey:@"name"];
    [self setPrimitiveValue:name forKey:@"name"];
    [self didChangeValueForKey:@"name"];
}
于 2013-04-14T12:32:53.153 に答える