Swift:Up将NSManagedObject转换为实体的子类

问题描述:

如何在Swift中将NSManagedObject转换为子类实体RelationshipSwift: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。

+0

@Abizern请不要删除我的括号。见[凯文法则](http://ericasadun.com/2015/11/17/a-handful-of-swift-style-rules-swiftlang/)。 –

+0

对不起,只是试图帮助,但链接让我明白你的意思。谢谢。 – Abizern