我正在使用核心数据,所以我的所有数字都是NSNumbers(因为它是一个旧模型,我没有使用标量自动转换,似乎可用于新的核心数据)。
所以我的代码已满了这些转换语句:
[myNSNumberFromCoreDataObject intValue] which is pretty annoying...
有没有方便的解决方案,或者我现在被困,因为我无法使用标量核心数据建模?
编辑: 理想情况下,人们可以编写某种预处理器语句来检查这些情况,并自动将其自动替换 - 这可能以某种方式实现吗?
答案 0 :(得分:3)
您始终可以将托管对象上的属性声明为标量,并在getter / setter中处理转换。例如:
标题强>
@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
答案 1 :(得分:0)
您可以在NSManagedObject子类上编写一个类别方法,它返回一个int,例如:
- (int)myNumberInt
{
return [self.myNumber intValue];
}