İçin Swift 2 üstü ve:
Swift 2 , for döngülerine durum desenleri ekler , bu da for döngüsünde cast yazmayı daha da kolay ve güvenli hale getirir :
for case let button as AClass in view.subviews {
// do something with button
}
Bu neden Swift 1.2 ve öncesinde yapabileceğinizden daha iyi? Çünkü vaka kalıpları , koleksiyondan kendi türünüzü seçmenize izin verir. Yalnızca aradığınız türle eşleşir, bu nedenle diziniz bir karışım içeriyorsa, yalnızca belirli bir tür üzerinde işlem yapabilirsiniz.
Örneğin:
let array: [Any] = [1, 1.2, "Hello", true, [1, 2, 3], "World!"]
for case let str as String in array {
print(str)
}
Çıktı:
Hello
World!
İçin Swift 1.2 :
Bu durumda, yayın yapıyorsunuz view.subviews
ve yapmıyorsunuz button
, bu nedenle istediğiniz diziye indirgemelisiniz:
for button in view.subviews as! [AClass] {
// do something with button
}
Not: Temel dizi türü değilse [AClass]
, bu çökecektir. Yani ne !
üzerinde as!
anlatıyor. Türden emin değilseniz, as?
isteğe bağlı bağlamayla birlikte koşullu atama kullanabilirsiniz if let
:
if let subviews = view.subviews as? [AClass] {
// If we get here, then subviews is of type [AClass]
for button in subviews {
// do something with button
}
}
İçin Swift 1.1 ve öncesi:
for button in view.subviews as [AClass] {
// do something with button
}
Not: Bu, alt görünümlerin tümü tür değilse de çökecektir AClass
. Yukarıda listelenen güvenli yöntem, Swift'in önceki sürümleriyle de çalışır.
for button in view.subviews as [AClass]