2016-10-02 36 views
-1

实体的正确类型是什么?Xcode 8(swift 3)它的实体类型是什么?

例如,将值保存到实体的属性时,哪种类型的声明应该替换下面的三个问号?

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)") 
    } 
} 
+0

我们需要更多的背景知道你想要达到的目标,以及“Entity1”和“Entity2”的声明。 – Alexander

+0

@ Alexander Momchliov,'Entity1','Entity2','Entity3'是CoreData.xcdatamodeld中列出的实体名称。 –

回答

0

使用??? = SampleEntity或删除???部分完整:

let saveSample = SampleEntity(context: context) 
let saveSample: SampleEntity = SampleEntity(context: context) 
let saveSample: SampleEntity 
+0

这在后一种方法中不起作用,在这种方法中,他正在根据某些标准前面声明一个变量,以便稍后用多个选项之一填充。 – Alexander

+0

你当然是对的。编辑答案。 – shallowThought

相关问题