2017-09-20 20 views
-3

一般的にSwiftとコーディングには非常に新しいです。 私のランダムセレクタを動作させる助けが必要です。私はそれが1と9の間の乱数を選択し、その数があなたがクリックしたボタンと同じであるかどうかをチェックしようとしています。Swift関数の呼び出しでパラメータ#1の引数がありません

enter image description here

+3

をスクリーンショットを投稿しないでください。あなたの実際のコードを投稿してください!あなたのコードは意味をなさない。あなたのbuttonPressedはvoidを返すので比較するには '='の代わりに '=='を使い、IBActionをプログラム的に呼び出すべきではない –

答えて

-1

私はあなたが何をしたいのか分かりませんが、乱数がボタンの等価タグであるかどうかを確認するには、これを行う必要があります:

あなたが ==ない =

あなたがタグにあなたのボタンの数を設定する必要がありますを使用する必要がブーリアン演算で

if randomNumber == sender.tag { 
    //your code 
} 

button1.tag = 1 
button2.tag = 2 
button3.tag = 3 

コードあなたの機能のうち、乱数を生成するために:このよう

var random = 0 

override func viewDidLoad(){ 
    super.viewDidLoad() 
    random = Int(arc4random_uniform(9)) 

} 
+0

これはうまくいきましたが、乱数を選ぶ方法はありますか?ボタンxをクリックすると勝ちますか?今すぐ私はどんなボタンをクリックしても失う – Alec

+0

私は私の答えを編集しました。 –

+0

どのように私はそれを作るので、それはあなたがボタンをクリックしてuと比較してアプリを開くときに1つの乱数を作るだろうし、あなたが勝つと一致する場合は?今すぐ、代わりに各ボタンをクリックすると番号が無作為化されます – Alec

0

私はあなたがクリックされたボタンにタイトル(表示回数)に乱数を比較しようとしている推測していますか?

もしそうなら、あなたのif文の上に次の行を追加します。

guard let buttonInt = sender.titleLabel?.text.flatMap(Int.init) else { return } 

その後、変更あなたの文はそう見えるように場合:

if randomNumber == buttonInt { 

    // do what you want if it matches 

} else { 

    // handle no match 
} 

// EDIT:flatMapのためのアレクサンダーの小道具バージョン

+0

'guard let buttonInt = sender.titleLabel?Int .init) ':) – Alexander

+0

@Alexanderは、あなたの提案を反映するように編集しました。 :) – Wes

+0

もう一度 'else {do something} 'が必要です。 – Alexander

0

確認してください:

let rand = Int(arc4random_uniform(9)) 
guard let buttonInt = Int(sender.currentTitle!) else { return } 
if rand == buttonInt { 

} else { 

} 
関連する問題