Swift:Up将NSManagedObject转换为实体的子类
问题描述:
如何在Swift中将NSManagedObject
转换为子类实体Relationship
。Swift:Up将NSManagedObject转换为实体的子类
func processEntity(updates: [NSManagedObject]) -> [Relationship] {
let relationship = updates.filter({$0.entity.name == "Relationship"}
// here how do I return an array of [Relationship]
}
答
不要比较名称,只做一个正常的演员。
func processEntity(updates: [NSManagedObject]) -> [Relationship] {
return updates.flatMap({ $0 as? Relationship })
}
如果你不熟悉它,flatMap
基本上是filter
加上map
。如果块返回nil
,则从结果数组中省略该元素,否则该数组将包含该块返回的值。所以在这种情况下,我们正在查看每个NSManagedObject
并说“你真的是Relationship
?”,我们保留的值是Relationship
s。
@Abizern请不要删除我的括号。见[凯文法则](http://ericasadun.com/2015/11/17/a-handful-of-swift-style-rules-swiftlang/)。 –
对不起,只是试图帮助,但链接让我明白你的意思。谢谢。 – Abizern