2014-12-02 46 views
21

Ayrıca 'bir yer' anahtar sözcüğünü başka bir yerde kullanma imkanı var mı? Örneğin, bir döngüde kullanabilir miyim?For döngüsü içinde 'nerede' kullanabilirim?

Bütün Böyle bir şey yapabiliriz, bir değerle, bool değerlerden oluşan bir dizi var: Bu eğer kullanmak çok daha güzel olurdu

var boolArray: [Bool] = [] 

//(...) set values and do stuff 


for value where value == true in boolArray { 
    doSomething() 
} 

, bu yüzden bir olasılık olup olmadığını merak ediyorum Bir for-loop ile birlikte kullanıldığında. Senin zamanın için Ty.

Swift 2'de
+2

' .filter() {$ 0 == true} Bunun gibi? –

+0

@BenjaminGruenbaum Vay evet, teşekkürler çok güzel ve hızlı! – Simon

+0

Sevindim - yardımcı olmak istedim - istediğin şey bu kadar açık - bir cevap ekleniyor –

cevap

52

, yeni where sözdizimi eklendi : Bunu yineleme önce

for value in boolArray where value == true { 
    ... 
} 

Pre yılında 2.0 bir çözüm dizisinde .filter çağırmak olacaktır:

boolArray değer için
for value in boolArray.filter({ $0 == true }) { 
    doSomething() 
} 
+2

İyi bir çözüm. Gerçi, stil için, kapanış kapanış sözdizimini kullanmamayı öneririm - bu şekilde, parantez kümesinin boolArray.filter ({$ 0 == true}) değerindeki 'for' döngüsünün gövdesi: {doSomething()} ' – rickster

+0

Ben, aşağıdaki döngü neden idam edilmediğini söyler misiniz? Ayrıca görünüm, otomatik olarak UIBarButtonItem olarak tanınmadı. self.view.subviews görünümünde view.isKindOfClass (UIBarButtonItem) { view.enabled = false } –

+0

güzel yarı kolon;) – mafiOSo