0

Apple のドキュメントhereを読むと、サンプル コードでは、プリミティブ アクセサーとミューテーターがカテゴリ内の個別のメソッドとして宣言されています。@propertyプリミティブを宣言するために使用することは可能ですか? このようにすることの欠点はありますか; 定型コードを節約するように見えますが、このように宣言されたときにメソッドが生成される方法にパフォーマンスへの影響はありますか? オプションの属性は何ですか - (strong、nonatomic)?

Appleのサンプルコード

@interface Department : NSManagedObject

@property(nonatomic, retain) NSString *name;

@end

@interface Department (PrimitiveAccessors)
- (NSString *)primitiveName;
- (void)setPrimitiveName:(NSString *)newName;
@end

提案された変更

@interface Department : NSManagedObject

@property(nonatomic, retain) NSString *name;

@end

@interface Department (PrimitiveAccessors)

@property (strong, nonatomic) NSString *primitiveName;

@end
4

1 に答える 1

0

Core Data エンティティのクラスを自動的に生成する必要があります。これを行うには、[エディタ] メニューを押して、[NSManagedObject サブクラスを作成] を選択します。これにより、エンティティごとにクラスが自動的に作成され、必要なプロパティが含まれます。

これらのクラスをカスタマイズする場合は、カテゴリで行うことを強くお勧めします。データモデルに戻って属性を追加または削除し、新しいサブクラスを生成する必要がある場合があるため、これをお勧めします。その場合、サブクラスに加えた可能性のある変更はすべて上書きされ、それは苦痛になる可能性があります:)

于 2012-05-09T00:56:27.863 に答える