【发布时间】:2017-02-10 08:54:39
【问题描述】:
实体的正确类型是什么?
例如,将值保存到实体的属性时,应该用什么类型声明代替下面的三个问号?
func setSample() {
let saveSample: <type???> = SampleEntity(context: context)
saveSample.sampleAttribute = "Save a new string."
do {
try context.save()
} catch {
print("Error with save: \(error)")
}
}
FWIW:NSEntityDescription 返回错误:
Cannot convert value of type 'SampleEntity' to specified type 'NSEntityDescription'
Value of type 'NSEntityDescription' has no member 'sampleAttribute'
上下文我想把实体变成一个变量来做这样的事情:
func setSample() {
var saveSample: ???
if (criteria) { saveSample = Entity1(context: context) }
if (criteria) { saveSample = Entity2(context: context) }
if (criteria) { saveSample = Entity3(context: context) }
saveSample.sampleAttribute1 = "Foo"
saveSample.sampleAttribute2 = "Bar"
saveSample.sampleAttributeNth = "Etc"
do {
try context.save()
} catch {
print("Error with save: \(error)")
}
}
【问题讨论】:
-
我们需要更多关于您想要实现的目标以及
Entity1和Entity2的声明的背景信息。 -
@Alexander Momchliov、
Entity1、Entity2、Entity3是 CoreData.xcdatamodeld 中列出的实体名称。