【问题标题】:Xcode 8 (swift 3) What its an entity's type?Xcode 8 (swift 3) 它的实体类型是什么?
【发布时间】: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)")
    }
}

【问题讨论】:

  • 我们需要更多关于您想要实现的目标以及Entity1Entity2 的声明的背景信息。
  • @Alexander Momchliov、Entity1Entity2Entity3 是 CoreData.xcdatamodeld 中列出的实体名称。

标签: xcode swift3 ios10


【解决方案1】:

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

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

【讨论】:

  • 这在后一种方法中不起作用,在这种方法中,他根据某些标准向前声明一个变量,稍后用多个选项之一填充。
猜你喜欢
  • 2017-05-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-13
相关资源
最近更新 更多