"3x3"というラベルのボタンがあります。ボタンのクリック機能で値 "3"のInt変数を作成します。ボタンのタイトルから整数を取得する方法
私は私が得る文字列は、私が取得この
"Optional(\"3\")"
とのIntのようなものですが、私は唯一の3
"3x3"というラベルのボタンがあります。ボタンのクリック機能で値 "3"のInt変数を作成します。ボタンのタイトルから整数を取得する方法
私は私が得る文字列は、私が取得この
"Optional(\"3\")"
とのIntのようなものですが、私は唯一の3
これはXY problemです。
質問:「私のボタンラベルの最初の文字をIntに変換するにはどうすればよいですか?
本当の答えは「しないでください」です。あなたのコードのロジックを表示情報に依存させることは非常に悪い考えです。
let newBoardSize = sender.tag
注どちらかがであなたのIBActionを設定する必要があります。
一つの簡単な解決策は、あなたのボタンのタグプロパティを使用して、ボタンを作成するときにIBの3にタグ値を設定することですあなたのIBActionの正しいクラスに送信者をキャストしてください。
別のアプローチは、各ボタンに適切な値を把握するために、あなたの別のボタン(例えばthreeButton
とfourButton
)にコンセントを設置して、あなたのIBActionでは、送信者があるボタンをチェックし、switchステートメントを使用することです。
func buttonTapped(sender: UIButton) {
switch sender {
case threeButton:
//Use the value 3
case fourButton
//Use the value 4
}
}
最後に、誰かが回答をする必要があります! –
があなたをしたたい
nil
ある
let newBoardSizeString = String.localizedStringWithFormat("\(sender.currentTitle?.characters.first)")
let newBoardSize = Int(newBoardSizeString)
を試してみました試してみる?
Int(newBoardSizeString)!
nil
の値をアンラップする前に処理していることを確認してください。
私は試してみましたが動作しません – rv7284
これは機能します。
let newBoardSize = newBoardSizeString as! Int
let newBoardSizeString = String.localizedStringWithFormat("\(sender.currentTitle?.characters.first)")
if let unwrapped = Int(newBoardSizeString){
let newBoardSize = unwrapped
}
私は試しましたが動作しません – rv7284
!
let newBoardSizeString = String.localizedStringWithFormat("\(sender.currentTitle?.characters.first!)")
このコードスニペットは質問に答えるかもしれませんが、方法や理由を説明する文脈はありません。答えを説明するために1つまたは2つの文を追加することを検討してください。 – brandonscript
Int(newBoardSizeString)! –
なぜボタンラベルからIntを作成したいのですか? –
私は引数としてIntを持つ別の関数を呼び出したいから – rv7284