iOS5核心数据和NSNumber是否有自动装箱/拆箱?

Ale*_*one 1 autoboxing core-data nsnumber ios ios5

来自Java,我非常习惯于自动装箱,其中int在需要时自动包装到Integer,并且Integer可以拆箱到基元中.在iOS5中有类似的东西我可以依赖吗?

目前,我正在使用核心数据,并且需要进行大量输入才能继续输入

 number.intValue
 //or 
number.boolValue 
Run Code Online (Sandbox Code Playgroud)

有没有办法直接在方程中使用NSNumber?例如:

int x = 5+ nsNumberInstance;
Run Code Online (Sandbox Code Playgroud)

此外,每次我需要在核心数据中重新分配一个数字时,我都会创建一个这样的新对象.

managedObject.dynamicProperty = [NSNumber numberWithInt: int];
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法来改变已经创建的NSNumber的值?从现在起10年后,我可以用什么样的漂亮快捷方式来保存我自己的腕管?

谢谢!

lna*_*ger 7

实际上,当您使用数据模型并使用"创建NSManagedObject子类"菜单项时,可以选择标题为"使用基本数据类型的标量属性"的选项.

在许多情况下,这会自动为您处理.
这里有些例子:

BOOL:
@property (nonatomic, retain) NSNumber * aBool;
变成了
@property (nonatomic) BOOL aBool;

NSDate:
@property (nonatomic, retain) NSDate * aDate;
成为
@property (nonatomic) NSTimeInterval aDate;

整数32:
@property (nonatomic, retain) NSNumber * aNumber;
变成
@property (nonatomic) int32_t aNumber;

浮动:
@property (nonatomic, retain) NSNumber * aFloat;
成为
@property (nonatomic) float aFloat;

NSDecimalNumber和NSString保持不变.

如果已经生成了子类,则可以在先前生成的头文件中自行更改这些,并且访问器方法将自动更新,而无需重新生成子类.