使用核心数据实现枚举的最佳方法

2023-12-27

将核心数据实体绑定到枚举值以便我能够为实体分配类型属性的最佳方法是什么?换句话说,我有一个名为ItemitemType我想要绑定到枚举的属性,最好的方法是什么。


如果您想将值限制为枚举,则必须创建自定义访问器。因此,首先您需要声明一个枚举,如下所示:

typedef enum {
    kPaymentFrequencyOneOff = 0,
    kPaymentFrequencyYearly = 1,
    kPaymentFrequencyMonthly = 2,
    kPaymentFrequencyWeekly = 3
} PaymentFrequency;

然后,为您的属性声明 getter 和 setter。覆盖现有的不是一个好主意,因为标准访问器需要 NSNumber 对象而不是标量类型,并且如果绑定或 KVO 系统中的任何内容尝试访问您的值,您将遇到麻烦。

- (PaymentFrequency)itemTypeRaw {
    return (PaymentFrequency)[[self itemType] intValue];
}

- (void)setItemTypeRaw:(PaymentFrequency)type {
    [self setItemType:[NSNumber numberWithInt:type]];
}

最后,你应该实施+ keyPathsForValuesAffecting<Key>因此,当 itemType 更改时,您会收到 itemTypeRaw 的 KVO 通知。

+ (NSSet *)keyPathsForValuesAffectingItemTypeRaw {
    return [NSSet setWithObject:@"itemType"];
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用核心数据实现枚举的最佳方法 的相关文章

随机推荐