我正在构建一个Core Data模型,我的一个类需要有一个最适合作为typedef实现的变量。现在我将它实现为一个带有三个可能值的字符串变量,但当然这并不健全。
有没有办法在Core Data模型中实现它?
答案 0 :(得分:1)
我最近看过使用enum typedef,并将其存储为Core Data中的NSNumber。我实现了自己的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中获得的内容是否实际上在枚举中有效。
答案 1 :(得分:1)
你可以拥有未定义类型的整数属性和瞬态属性,它是根据整数属性值初始化的吗?