typedef作为Core数据类型

时间:2009-09-19 12:33:26

标签: objective-c core-data

我正在构建一个Core Data模型,我的一个类需要有一个最适合作为typedef实现的变量。现在我将它实现为一个带有三个可能值的字符串变量,但当然这并不健全。

有没有办法在Core Data模型中实现它?

2 个答案:

答案 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)

你可以拥有未定义类型的整数属性和瞬态属性,它是根据整数属性值初始化的吗?