簡體   English   中英

如何訪問變量名並將字符串更改為它

[英]How can I access to variable name and change string to it

我有許多圖像,它們分別命名為image0,image1,image2 ...,image(x)。

我的問題是如何訪問它們的名稱,因為我想將它們全部放入數組中,例如:

@IBOutlet weak var image0: UIImageView!
@IBOutlet weak var image1: UIImageView!
@IBOutlet weak var image2: UIImageView!
@IBOutlet weak var image3: UIImageView!
@IBOutlet weak var image4: UIImageView!
@IBOutlet weak var image5: UIImageView!
...
@IBOutlet weak var image15: UIImageView!
    var counter: Int = 0
    var items :[[UIImageView]] = []
    for i in 0..<4{
        for j in 0..<4{
            items[i][j]=image(counter) //this line should be something that image0,1..x assign to the array
            counter += 1
        }
    }
}

您可以通過以下代碼執行此操作。

迅捷3

var items : [[UIImageView]] = []
let myMirror = Mirror(reflecting: self)
for i in 0..<4 {
    items.insert([UIImageView](), at: i)
    for j in 0..<4 {
        let propertyName = "image\(i*4 + j)"
        items[i].insert(myMirror.descendant(propertyName) as! UIImageView, at: j)
    }
}

但是,這不是開發人員使用的代碼,請看使用UICollectionView

我知道你在做什么。 可悲的是,變量名是在編譯時求值的,所以這是不可能的。 您可以做的最好的事情是手動創建陣列。

[[image0, image1, image2], [image3, image2, image3], ...]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM