iOSアプリケーションでCoreDataを使用しています。 xcdatamodelでBooleanとマークされたフィールドとモデル化されたNSNumber以外はすべて正常に動作します。 この種のフィールドでは、拡張クラスでいくつかのユーティリティメソッドを記述したいと思っていますが、どこに最適な場所を書くのか、ベストプラクティスなのでしょうか。 MyManagedObject.hで拡張NSManagedObjectクラスのラッパーメソッドobjective-c
は私が持っている:
@interface MyManagedObject : NSManagedObject {
@private
}
@property (nonatomic, retain) NSNumber * mandatory;
@end
義務は、データモデルのbooleanです。
[myManagedObject mandatoryWrapper:YES];
-(void)mandatoryWrapper:(BOOL)mandatory {
// convert boolean to number
self.mandatory=convertedMandatory;
}
:適切なように、私はおそらく、エンティティ自体に、どこかのユーティリティのラッパー・メソッドを記述する必要があるエンティティを使用するため、この時点で
@implementation MyManagedObject
@dynamic mandatory;
:これはXcodeのから生成されたクラスでありますしかし、私は「混乱」を発生させないために、元のgetter/setterメソッドを使用することを目指しています:
// setter
myManagedObject.mandatory=YES;
//getter
if(myManagedObject.isMandatory)
を私は、元のメソッドを書き換えることで、後にいくつかの問題が発生することを想定しますたとえば、コンテキストで保存または取得する場合など、アプリケーションのライフサイクルに影響を与えます。
ありがとうございました。