Xcode 中 NSManagedObject 属性的默认值

Posted

技术标签:

【中文标题】Xcode 中 NSManagedObject 属性的默认值【英文标题】:Default values of NSManagedObject attributes in Xcode 【发布时间】:2011-09-14 09:56:42 【问题描述】:

Xcode 中是否可以将空字符串设置为NSString 类型属性的默认值?或者[NSDate date]作为NSDate类型属性的默认值?

【问题讨论】:

这是一个很好的解决方案。检查此解决方案 [CoreData - 无法将空字符串设置为属性的默认值] [1] [1]:***.com/questions/5154708/… 【参考方案1】:

您必须以编程方式执行这两项操作。但是,您不能让 [NSDate date] 成为默认值(因为在您设置该默认值时,您只是使用设置默认值的特定时间的日期,而不是创建 MO 的时间)。

您应该创建NSManagedObject 的子类并实现awakeFromInsert 方法:

- (void)awakeFromInsert

  [super awakeFromInsert];

  [self setDateAttribute:[NSDate date]];
  [self setStringAttribute:@""];

【讨论】:

我想。顺便问一下,[NSString string] 不是更适合获取空字符串吗? 差别不大。两者都有效。 @"" 是编译时常量。 [NSString string] 在运行时创建。差别不大。不用担心这里。 文档建议您应该使用 setPrimitiveValue:forKey: 而不是访问器。

以上是关于Xcode 中 NSManagedObject 属性的默认值的主要内容,如果未能解决你的问题,请参考以下文章

Xcode 和核心数据 - “创建 NSManagedObject 子类”

Xcode 8.0 NSManagedObject 子类模板在哪里

Xcode 中 NSManagedObject 属性的默认值

在 Xcode 10.2 上的 Swift4.2 中插入 NSManagedObject 后,我​​会立即收到 Xcode 构建错误

如何在 Xcode8 中手动触发 NSManagedObject 子类的生成

在 CoreData 中使用 NSManagedObject 子类找不到 xcode8 标头