2016-06-13 76 views
0

我在做一個小遊戲,通過改進我的Swift語言,所以我不熟悉Swift的所有功能。這就是爲什麼我問這個:通過使用字符串改變Bool類型的值

我:

var Playedcardone: Bool = false 
var Playedcardtwo: Bool= false 
ect ect ect 

我IBAction爲,這是迷上了52張牌:

@IBAction func Tappedoncard(card: UIButton) { 
     if tapped == true{ //nvm this 
     checkcard(card) 
    } 
    } 

在一個功能,我有:

func checkcard(Card: UIButton) { 
     ("Playedcard" + Card.currentTitle!) = true 
    } 

那麼你可能猜測這個功能不起作用。我怎樣才能引用我根據我所調用的卡創建的變種?當卡被打勾時,布爾需要改變爲真。我可以通過創建52個變量和51個其他語句來實現,但是應該有更快的選項嗎?歡迎您的幫助:)。

/offtopic:我知道我可以使用類來定義我的卡片值,UIIMageview和布爾本身。我只是不明白課程的最佳,也許我將使用我的下一個應用程序。如果你想看到我的代碼,並且想要幫我一把,只需要問一下,我會在這裏刪除代碼。

+0

你能澄清你在做什麼嗎?你是否希望函數將var更改爲true? –

+0

@Jonnyjammer請發佈更多的代碼並闡明你的目標。讓別人和我可以幫助你。 – Ike10

+0

我更新了我的帖子。請再看一下。 – Nahaku

回答

0

當您嘗試執行操作時,無法使用字符串訪問變量。您將需要執行一些類型的條件檢查來更新變量,如下所示。

func checkcard(Card: UIButton) { 
    if Card.currentTitle! == "one" { 
     Playedcardone = true 
    } else if Card.currentTitle! == "two" { 
     Playedcardtwo = true 
    } 
} 

有很多不同的解決方案可以使用 - 例如,爲什麼不爲每張卡製作兩個獨立的IBActions?另外作爲慣例,我會建議使用小寫字母來啓動變量。

+0

這樣,我需要添加52個變量和51個其他if語句,以確定卡的當前標題是...沒有其他選項嗎?你說我可以創建2個獨立的IBAction,但是應該包含另一個IBAction? – Nahaku

+0

@Jonnyjammer如果是這種情況,你將需要一種不同的方法來存儲你的卡考慮使用數組 –

相關問題