我有一堆 NSManagedObject 实体,其中有一组需要正确翻译的字段。
我读过其他关于核心数据本地化最佳实践的帖子,但我真的希望有一种方法可以集中管理从与实体相关的键中正确翻译的字符串的解析。
例如,如果我有一个名为 Books 的实体,它有一个字段 localizedDescription,而不是与 LocalizedBook 建立关系,而 LocalizedBook 是一个仅为翻译目的而创建的实体,我希望所有实体都与现实世界相关抽象和一个独特的实体,它也可以是一个字符串文件或一个 NSDictionary。
通过这种方式,我很乐意创建 NSManagedObject 的子类和 Book 的父类(super class),其中字段的 getter 可以有条件地读取原始值或进行一些数学运算,然后返回转换后的值。
所以我在这里基本上要问的是:我如何 - 通过子类化或类别 - 覆盖每个 NSManagedObject 字段的 getter 而不为每个字段编写 getter 或循环字段?有没有我可以覆盖的方法,比如 valueForKey:,而不会破坏任何东西?
出于好奇,我对这个特定问题更感兴趣,而不是找到解决翻译问题的更好方法或翻译核心数据值的绝对最佳实践。
最佳答案
不,你不能在不编写 getter 的情况下覆盖它们。 -valueForKey:
和 -primitiveValueForKey:
都不应被覆盖。
UPD:可能会覆盖这些方法,因为 NSObject 的 -methodForSelector:
会做一个技巧。
关于ios - 覆盖本地化字符串的 NSManagedObject getter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25668293/