Quaternion to Yaw Pitch Roll

В Swift вы не можете «подстроить» подпись блока / закрытия, как в Objective-C, вы должны явно указать. Либо с дополнительным приложением:

array.enumerateObjectsUsingBlock({ object, index, stop in
    if let str = object as? String {
        println(str)
    }
})

, либо с принудительным нажатием, если вы уверены, что все объекты являются строками:

array.enumerateObjectsUsingBlock({ object, index, stop in
    let str = object as String // `as!` in Swift 1.2
    println(str)
})

Поскольку NSArray соединяется с Array плавно, вы можете альтернативно использовать перечисление Array:

for str in array as [String] {
    println(str)
}

или, если вам нужны элементы вместе со своим индексом:

for (index, str) in enumerate(array as [String]) {
    println("\(index): \(str)")
}

Обновление для Swift 3.0

С enumerateObjects(using:):

array.enumerateObjects(using: { (object, index, stop) in
    if let str = object as? String {
        print("\(index): \(str)")
    }
})

Перечислить как массив Swift:

if let a = array as? [String] {
    for str in a {
        print(str)
    }
}

Перечислить элементы и индексы в виде массива Swift:

if let a = array as? [String] {
    for (index, str) in a.enumerated() {
        print("\(index): \(str)")
    }
}
0
задан ThaNoob 16 January 2019 в 10:34
поделиться