0

viewDidLoad で、arc4random を呼び出して乱数を取得する iphone 用のアプリケーションを開発しています。私の問題は、アプリケーションが起動するたびに、arc4random から同じ番号を取得することです。iPhone デバイスでアプリをテストし、デバイスのタッチスクリーンからアプリケーションを起動すると、この動作が見られることを指摘しておく必要があります。デバイスで xcode からアプリを実行すると、さまざまな乱数が表示されます。

ヘルプやアドバイスをいただければ幸いです。ありがとう。

4

1 に答える 1

2

arc4randomシードする必要はなく、呼び出すたびに同じ結果を返す必要はありません。

あなたのコメントから、アプリがフォアグラウンドになるたびにコードが実行されていないように思えます。ホームボタンを押しても、デフォルトではアプリが終了しないことに注意してください。バックグラウンドに入り、再度アイコンをタップすると再開します。

コードが 内viewDidLoadにある場合、一度だけ呼び出されます。つまり、変数は更新されず、検査するたびに同じ値が含まれます。Xcode から実行すると、アプリは毎回完全に終了し、期待どおりの動作が得られます。

ビューが最初にロードされたときではなく、ビューが画面に表示されるたびにコードが呼び出されるようにする必要viewWillAppear:があります。viewDidAppear:

于 2013-05-03T10:27:09.360 に答える