2009-09-19 85 views
1

我正在构建一个核心数据模型,我的一个类需要有一个最适合作为typedef实现的变量。现在我正在将它作为一个字符串变量来实现,它有三个可能的值,但当然这不是健壮的。typedef作为核心数据类型

有没有一种方法可以在核心数据模型中实现这一点?

回答

1

我看过最近使用枚举typedef,并将其作为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

您可以具有未定义类型的整数属性和transcient属性,它是根据整数属性值进行初始化的吗?