//这不起作用-NSArray不是Images的子类型-那么如果只有1种可能的结果怎么办?
您无法在编译时证明数组上只有一个可能的结果。您实际要的是第 一个 匹配结果。最简单(尽管不是最快)是仅获取filter结果的第一个元素:
let imageObject = questionImageObjects.filter{ $0.imageUUID == imageUUID }.firstimageObject现在当然是可选的,因为可能没有匹配项。
如果搜索整个数组很费时,您当然可以轻松创建一个
firstMatching函数,该函数将返回与闭包匹配的(可选)第一个元素,但是对于较短的数组,这很好且简单。
查尔斯指出,在Swift 3中内置了:
questionImageObjects.first(where: { $0.imageUUID == imageUUID })


