ios - 在 for-in 循环中更改数组的名称

标签 ios arrays swift loops swift2

我有一定数量的数组需要循环。他们的名字只有一个区别,那就是名字末尾的数字。

arr1
arr2
arr3

我想从第一个数组中获取第一个数字,从第二个数组中获取第二个数字,依此类推。我还有一个数字 n ,其中包含数组的数量和数组的数量。如果有两个数组,则每个数组有两个数字,如果有三个数组,则每个数组有三个数字,依此类推。

最初我是这样循环的:

var firstDiag = 0

for (var i = 0; i < n; i++) {
    if (i == 0) {
        firstDiag += Int(arr1[i])!
    } else if (i == 1) {
        firstDiag += Int(arr2[i])!
    } else if (i == 2) {
        firstDiag += Int(arr3[i])!
    } else {
        firstDiag += 0
    }
}

但我想知道我是否可以这样做

for i in 0...n {
  firstDiag += Int(arr<i>[i])!
}

我在哪里更改数组名称的最后一个数字。是否可以这样做,或者我应该做些什么?

有可能我不知道有多少数组。

最佳答案

如果您可以创建一个符合NSKeyValueCoding 的类,您可以使用valueForKeyPath(_:) 来获得您想要的。用法示例如下:

import Foundation
class Test: NSObject {

    let array0 = [1, 2, 3]
    let array1 = [4, 5, 6]
    let array2 = [7, 8, 9]
    let n = 3

    func calculate() -> Int {
        var firstDiag = 0
        for i in 0..<n {
            if let array = valueForKeyPath("array\(i)") as? Array<Int> {
                firstDiag += array[i]
            }
        }

        return firstDiag
    }
}

let a = Test()
a.calculate() // Prints 15

关于ios - 在 for-in 循环中更改数组的名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34557752/

相关文章:

c - 使用 C 识别等差

C:学习指针,打印地址失败

swift - 断言失败 : self. 必须分配表单属性

ios - NSMutableString 不适用于 HTML 文本

iphone - UITextView行高问题

ios - 如何更改 iOS 中的默认通知声音?

ios - 允许用户在消息传递应用程序中同时向多个用户发送消息

ios - Google 街景应用程序(非 Google map )的 URL 架构

java - 主要方法之外的数组?

ios - UITableViewCell 中的 UIStackView 在 AutoLayout 上无法正确调整