3

私はコアデータを使用しているため、すべての数値は NSNumbers です (古いモデルであるため、新しいコアデータで使用できると思われるスカラー自動変換を使用しませんでした)。

したがって、私のコードは次の変換ステートメントでいっぱいです。

[myNSNumberFromCoreDataObject intValue]   which is pretty annoying...

スカラー コア データ モデリングを使用できなかったので、これに対する便利な解決策はありますか?

編集:理想的には、これらのケースをチェックし、自動的にこれを自動的に置き換える何らかのプリプロセッサステートメントを書くことができます-これはどういうわけか可能ですか?

4

2 に答える 2

3

管理対象オブジェクトのプロパティを常にスカラーとして宣言し、ゲッター/セッターで変換を処理できます。例:

ヘッダ

@interface MyEntity : NSManagedObject

@property (nonatomic, assign, readwrite) NSUInteger count;

@end

実装

@interface MyEntity ()

@property (nonatomic, retain, readwrite) NSNumber* dbCount;

@end

@implementation MyEntity

@dynamic dbCount;

- (void)setCount:(NSUInteger)count {
    self.dbCount = [NSNumber numberWithUnsignedInteger:count];
}

- (NSUInteger)count {
    return [self.dbCount unsignedIntegerValue];
}

@end
于 2012-07-24T14:00:26.177 に答える
0

You could write a category method on your NSManagedObject subclass which returns an int, e.g.

- (int)myNumberInt
{
    return [self.myNumber intValue];
}
于 2012-07-24T13:59:25.240 に答える