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 构建错误