2015-07-19 66 views
0

我正在創建一個iOS應用程序,並且遇到了需要幫助克服的障礙。我的問題是,我的應用程序使用分數計數器,並且我希望應用程序爲用戶提供特定分數的某些獎牌。例如,如果用戶得分20,我希望應用程序給他們一枚銅牌,如果用戶在21-49之間得分,他們會得到一枚銀牌。我希望你明白這個主意。我已經試過這樣:如何在swift中創建數字範圍

if String(score) > 55{ 
     medal = SKSpriteNode(imageNamed:"medalG") 
    } 
    var x = 20 
    var y = 50 

    if (String(score) = x...y){ 
     medal = SKSpriteNode(imageNamed:"medalS") 
    } 
    if String(score) < 20{ //this line always gives me issues 
     medal = SKSpriteNode(imageNamed:"medalB") 
    } 

我試過這個

if (String(score) = x..<y){ } 

替換第二「如果」行了,這也給我發出

我也試過.. 。

if String(score)<50 && String(score)>20{ } 

,但這也給了問題,請有人幫助

回答

0

範圍有一個方法contains,您可以使用它來檢查特定值是否位於範圍的端點之間。但你可能會更好地使用switch聲明 - 它的區間匹配,它基本上是爲這種情況設計的。

你可以做類似如下:

// assume score is an Int defined above 
switch score { 
    case 0...20: 
     medal = SKSpriteNode(imageNamed: "medalB") 
    case 21...49: 
     medal = SKSpriteNode(imageNamed: "medalS") 
    case 50...60: 
     medal = SKSpriteNode(imageNamed: "medalG") 
    default: 
     print("It is inconceivable that you are this good.") 
} 

請記住,switch語句必須是詳盡,那就是必須有相匹配的表達的每一個可能的值的情況下,在其上你正在切換。這就是爲什麼我添加上面的默認值。

0

可以使用「模式匹配」操作符〜=:

if 20 ... 50 ~= String(score) { 
    println("success") 
} 

或與表達模式switch語句(使用圖案匹配操作符內部):

switch String(score) { 
case 20 ... 50: 
    println("success") 
default: 
    println("failure") 
} 

獲取更多幫助Pattern matching