从 class 获取实例值

Get instance value from a class

我有一个 class:

class MapImage {
    var name: String!
    var image: UIImage!

    init(name: String, image: UIImage) {
        self.name = name
        self.image = image
    }
}

然后我将图像名称和以编程方式创建的图像添加到我的 class MapImage。我调用我的函数

 MapImage(name: image_name, image: image)

所以现在我有 image_nameimage 作为 class 的实例。接下来,我想使用 image_nameMapImage 访问 image。我怎样才能做到这一点?基本上 class 包含成对的 image_nameimage。如何使用 image_name 访问 image

您描述的是字典和按键访问。因此,将您的 MapImage 实例放入一个字典中,其中键是每个 MapImage 实例的 image_name,值是 MapImage 实例本身。现在您可以使用名称字符串直接转到所需的 MapImage 实例。

或者,只需将您的 MapImage 实例放入一个数组中,然后循环遍历该数组以查找其 image_name 是您要查找的名称的实例。如果您有大量实例,但只有 3 张图像,则速度会慢一些。您可以使用 filter 实例方法为您执行循环并提取所需的 MapImage 实例(警告,如果您提供错误的名称,此代码将崩溃):

let arr : [MapImage] = // ...
let image = arr.filter{[=10=].name == "MyDesiredName"}[0].image