如何本地化核心数据实体中属性的默认值

Posted

技术标签:

【中文标题】如何本地化核心数据实体中属性的默认值【英文标题】:How do I localise the default value of attribute in a Core Data Entity 【发布时间】:2009-06-10 04:02:14 【问题描述】:

如果我要创建一个具有非可选字符串属性的实体,例如“name”,我会将“Untitled”作为默认值。如何本地化这个默认值?

我可以将实体子类化并在awakeFromInsert 中使用NSLocalizedString 来执行此操作。但我想知道是否还有其他方法。

编辑:

如果这是唯一的方法,那么我可以接受。只是好奇。

【问题讨论】:

【参考方案1】:

我认为 awakeFromInsert 是唯一的方法

【讨论】:

【参考方案2】:

您可以尝试使用 -[NSEntityDescription attributesByName]。这将为您返回一个 NSAttributeDescription 对象的 NSDictionary。然后,您可以拉出您想要的并在其上使用 -[NSAttributeDescription setDefaultValue:]。

【讨论】:

【参考方案3】:

您可以本地化托管对象模型的大部分方面,包括实体和属性名称以及错误消息。见这里:http://developer.apple.com/documentation/Cocoa/Conceptual/CoreData/Articles/cdUsingMOM.html#//apple_ref/doc/uid/TP40005190-SW13

【讨论】:

谢谢,但我已经看到了。但这并没有显示如何本地化属性的默认值。在我的示例中,它将本地化​​“名称”而不是“无标题”

以上是关于如何本地化核心数据实体中属性的默认值的主要内容,如果未能解决你的问题,请参考以下文章

关于java中属性变量默认值的问题。

核心数据 valueForKeyPath 返回 0

更新CoreData模型版本时如何为实体的新属性设置默认值

核心数据+本地化

按插入顺序检索核心数据实体

当我的类中有属性具有默认构造函数来提供值自动映射器时,如何映射?