使用Swift 2.3,我有一个用特定类型定义的Core DataSet,如下所示:

@NSManaged public var personEntities: Set<PersonEntity>?

我只想把它转换成swift 2.3ArrayPersonEntity-简单吧?我试过以下几点,但都会产生各种各样的错误:
cell.people = Array(self.memory.personEntities)

(无法调用类型的初始值设定项..带有..类型的参数列表)
cell.people = self.memory.personEntities.flatMap({$0 as? PersonEntity})!

(无法将person实体类型的值赋给类型[personEntity])
cell.people = self.memory.personEntities.flatMap({$0})

(flatmap生成u,而不是上下文结果类型)
非常感谢您的帮助。

最佳答案

通过评论感谢贡献者,这是正确的答案:

cell.people = Array(self.memory.personEntities ?? [])

它以前失败是因为self.memory.personEntities是一个Optional。因此,通过添加?? [],它可能无法获得personEntities(如果其为nil),而只提供一个空数组[]

09-25 21:49