原创Blog,转载请注明出处
blog.youkuaiyun.com/hello_hwc
在使用CoreData进行数据存储的时候,难免会用到各种标量类型(float,Integer 32等)。而XCode自动生成的NSManagedObject子类会生成对应的NSNumber,例如
有一个Integer 32的属性
则生成NSManaged Object的子类以后,会声称如下属性
@property (nonatomic, retain) NSNumber *age;
然后,我们不得不在使用的时候,进行转换
age.IntValue
技巧-手动修改ManagedObject的属性为具体类型
把上述属性直接修改为
@property (nonatomic) int32_t age;
然后,就可以直接使用了,原理很简单,编译的时候Foundation会自动把int32_t合成为对应的NSNumber类型,同时也会在使用的时候解析为对应的int32_t类型。
这里要注意的是,
手动修改的类型要和属性定义的类型一致。例如Integer 32对应int32_t。
我在Github有个简单的Demo,感兴趣的童鞋可以看下
https://github.com/wenchenhuang/CoreDataDemo