【问题标题】:typedef as a Core data typetypedef 作为核心数据类型
【发布时间】:2010-11-29 17:27:10
【问题描述】:

我正在构建一个核心数据模型,我的一个类需要有一个可以最好地实现为 typedef 的变量。现在我将它实现为一个字符串变量,它接受三个可能的值,但这当然不可靠。

有没有办法在核心数据模型中实现这一点?

【问题讨论】:

    标签: objective-c core-data


    【解决方案1】:

    我最近研究过使用枚举类型定义,并将其作为 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 中返回的内容在枚举中是否确实有效。

    【讨论】:

      【解决方案2】:

      你可以有整数属性和未定义类型的transcient属性,根据整数属性值初始化?

      【讨论】:

        猜你喜欢
        • 2010-12-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多