gpt4 book ai didi

ios - 在数组中查找具有属性的对象

转载 作者:IT王子 更新时间:2023-10-29 04:59:37 26 4
gpt4 key购买 nike

是否有可能从具有特定属性的数组中获取对象?或者我是否需要遍历数组中的所有对象并检查某个属性是否是我正在寻找的特定属性?

编辑:谢谢你给了我正确的方向,但我在转换它时遇到了问题。

//再次编辑:A ok,如果只有一个特定的结果呢?这也是一种可行的方法吗?

let imageUUID = sender.imageUUID


let questionImageObjects = self.formImages[currentSelectedQuestion.qIndex] as [Images]!

// this is working
//var imageObject:Images!
/*
for (index, image) in enumerate(questionImageObjects) {

if(image.imageUUID == imageUUID) {
imageObject = image
}

}
*/

// this is not working - NSArray is not a subtype of Images- so what if there is only 1 possible result?
var imageObject = questionImageObjects.filter( { return $0.imageUUID == imageUUID } )

最佳答案

// this is not working - NSArray is not a subtype of Images- so what if there is only 1 possible result?

您无法在编译时证明数组上只有一种可能的结果。您实际要求的是第一个 匹配结果。最简单的(虽然不是最快的)是只取过滤器结果的第一个元素:

let imageObject = questionImageObjects.filter{ $0.imageUUID == imageUUID }.first

imageObject 现在当然是可选的,因为可能没有匹配项。

如果搜索整个数组很耗时,当然你可以很容易地创建一个 firstMatching 函数来返回匹配闭包的(可选的)第一个元素,但是对于短数组来说这很好而且简单.


正如 charles 所说,在 Swift 3 中,这是内置的:

questionImageObjects.first(where: { $0.imageUUID == imageUUID })

关于ios - 在数组中查找具有属性的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26073331/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com