【发布时间】:2010-11-29 17:27:10
【问题描述】:
我正在构建一个核心数据模型,我的一个类需要有一个可以最好地实现为 typedef 的变量。现在我将它实现为一个字符串变量,它接受三个可能的值,但这当然不可靠。
有没有办法在核心数据模型中实现这一点?
【问题讨论】:
标签: objective-c core-data
我正在构建一个核心数据模型,我的一个类需要有一个可以最好地实现为 typedef 的变量。现在我将它实现为一个字符串变量,它接受三个可能的值,但这当然不可靠。
有没有办法在核心数据模型中实现这一点?
【问题讨论】:
标签: objective-c core-data
我最近研究过使用枚举类型定义,并将其作为 NSNumber 存储在 Core Data 中。我实现了自己的 NSManagedObject 子类并为我的类型创建了一个属性。然后在访问器中,我与 NSNumber 相互转换:
- (MyTypedef)type {
NSNumber *value = [self primitiveValueForKey:@"type"];
return [value integerValue];
}
- (void)setType:(MyTypedef)aType {
NSNumber *value = [NSNumber numberWithInteger:aType];
[self setPrimitiveValue:value forKey:@"type"];
}
最后我没有采用这个解决方案,但它对我来说很好用(在 iPhone 上)。不确定上面的代码是否绝对正确 - 我刚刚在这个浏览器窗口中输入了它。
如果您想使用 KVO 等,可能需要做更多的工作,并且您可能想在访问器方法中进行一些错误检查,以检查您在 NSNumber 中返回的内容在枚举中是否确实有效。
【讨论】:
你可以有整数属性和未定义类型的transcient属性,根据整数属性值初始化?
【讨论】: