xcodeとインターフェースビルダー3.2.5を使用していて、http://appsamuck.com/day1.htmlウェブサイトから最初のアプリを実装しようとしています。私はすべての指示に従っていると信じていますが、アプリは機能しません。このアプリは、ビュー内のcountdownLabel(黒い背景の上に表示される)というラベルを作成する方法を教え、CountdownLabelをInterface Builderに接続します。アプリでUILabelが更新されないのはなぜですか?Amuck MinutesToMidnight iPhoneチュートリアル
(BOOL)アプリケーション:(のUIApplication *)アプリケーションdidFinishLaunchingWithOptions:(NSDictionaryの*)launchOptions {
タイマ= [NSTimer scheduledTimerWithTimeInterval:(1.0)ターゲット:自己アプリappDelegate内のタイマをスタートセレクタ:@セレクタ(onTimer)userInfo:nilリピート:YES];
... }
各タイマティックで、appDelegateにOnTimer方法は、真夜中の前に時間、分、秒を識別する文字列でcountdownLabelを更新するためのViewControllerメソッドを呼び出します。アプリが実行されると、countdownLabelは決して更新されません。代わりに、背景が白くなります。
ブレークポイントを設定すると、タイマーが正常に実行されている(つまり、onTimerを定期的に呼び出している)ことを確認し、メソッドを呼び出してcountdownLabelを更新しています。最初のタイマーイベントが今まで発生する前にしかし、のViewController法 "loadViewメソッド" への呼び出しが行われます
- (無効)loadViewメソッド{ [countdownLabelのsetFont:[UIFont fontWithName:128.0]: "DBLCDTempBlack" サイズ@ ]; countdownLabel.text = @ "I0A0IN6"; }
この方法で停止すると、countdownLabelの内容が0x0であることがわかります。 appDelegate onTimerメソッド内でブレークポイントへの実行を続行すると、画面が白くなります。このメソッドは、countdownLabelを更新するメソッドを呼び出しますが、ラベルは決して変更されません(おそらく、countdownLabelの値が0x0のままであるため)。
なぜカウントダウンラベルは0x0ですか?いくつかの初期化や接続がありますか?
Ned、ありがとう。はい、私はこれが正しく行われたことを確認しました。しかし、まだこれは動作するように運がない。他の考え? –
これはおそらく、(空)loadViewではなく、 - (void)viewDidLoadにフォントを設定しているからでしょう。 - (void)の定義を提供すると、loadViewはペン先の読み込みをスキップして白い画面を表示します。そのメソッドを変更することがトリックを行うかどうかを確認してください。 – Ned
ああ私のゴシック。あなたは、絶対に正しい。それは苦しい教訓でした。本当にありがとう。 –