2016-06-17 6 views
0

Ich versuche zu testen, ob eine Zahl gleichmäßig durch eine Gruppe von Zahlen geteilt werden kann. Dies ist mein Code:So ändern Sie [Int] in Int in Swift

var arr = [2, 3, 4, 5, 6, 7, 8, 9] 

var text = Int(textField.text!)! 

if text % arr === 0 { 
} 

Was ich versuche zu tun ist, teilt Variable "Text" von 2, 3, 4, 5, 6, 7, 8 und 9 (wenn es durch jeden teilbar ist, führt die Aktion), aber ich bin mir nicht sicher, wie man den Wert des Arrays bekommt. Und ich will nicht zu tun haben:

if text % 2 == 0 || text % 3 == 0 || text % 4 == 0 

etc ...

+0

Sie können einen Enum-Block dafür erstellen. – Bhupesh

Antwort

3

Ein Weg, dies zu tun Swifty wäre, eine if let zu verwenden, um die optionals auszupacken und verwenden dann den integrierten in contains Funktion, um zu sehen, wenn das Array ein Element enthält, das das Prädikat erfüllt.

let arr = [2, 3, 4, 5, 6, 7, 8, 9] 
if let text = textField.text, number = Int(text) {  
    if arr.contains({ number % $0 == 0 }) { 
     ... 
    } 
} 
+0

Ja, das ist die beste Lösung für das Problem. –

2
for divider in arr { 
    if text % divider == 0 { 
    // ... 
    break 
    } 
} 
+0

Haha :) zur gleichen Zeit :) – Array

+0

Sieht aus wie die gleiche Antwort wie ich :), also werde ich meine Antwort löschen –

+0

thx Jungs, das hilft sehr. –

0

Hast Du diesen hat man versucht?

for value in arr { 
    if text % value == 0 { 
      // do some action 
      break 
    } 
} 
0
for i in arr { 
    if text % i == 0 
    { 
    } 
}