3

ブール値フィールドを持つ CoreData モデルにエンティティがあります。これは、CoreData エンティティに として保存されNSNumberます。私が望むのは、アクセサが ではBOOLなくを使用NSNumberすることです。したがって、使用できます

comment.isActive = YES;

それ以外の:

BOOL isCommentActive = [NSNumber numberWithBool:comment.isActive];

自動生成されたエンティティ クラス ファイルのコードを変更するつもりでしたが、モデルを抽出するたびに上書きされるため、変更しないように言われました。

エンティティのカテゴリがあり、それを同じ名前の に変換するアクセサをコーディングしようとしましたBOOLが、ループに陥ってしまいました。

メソッドのツイズリングについて言及している人もいますが、私にはかなりハックに思えます。別の名前のプリミティブを返すアクセサーを作成する必要がありますか?

4

2 に答える 2

0

私はマーティンに同意しますが、既存の NSManagedObject サブクラスにこの関数を追加してみてください:

 -(void)setActiveRaw:(BOOL)active
 {
     [self setActive:[NSNumber numberWithBool:active]];
 }

そして、次のように使用します。

 [comment setActiveRaw:YES];

それ以外の

 comment.active = [NSNumber numberWithBool:comment.isActive];

そして、これにもゲッターを書くことができます:

 -(BOOL)getActiveRaw
 { 
    return [self.active boolValue]
 }
于 2013-04-07T09:31:27.097 に答える