0

IB を使用して iPad アプリに UIDatePicker を追加し、コード内のアウトレットにリンクし、IB に保存し、コード内の UIViewController に UIPickerViewDelegate を追加し、コード内に UIDatePicker アウトレットを追加しました。ビルドして実行するとアプリが起動しますが、日付ピッカーを含むポップオーバー ビューを開こうとすると断続的にクラッシュします。断続的に言うのは、ポップオーバー ビューがときどき正常に開くことがありますが、一度しか開かないからです (最初にクラッシュしない場合は、ポップオーバーを 2 回目に開いたときに必ずクラッシュします)。また、コンソールでは、次のメッセージが表示されます

objc[594]: FREED(id): message lastClickRow sent to freed object=0x6015a70
  1. なぜこれが起こっているのですか、どうすれば修正できますか?
  2. そのコンソール メッセージは何を示していますか?

ポップオーバー ビューには、日付ピッカー コントロールと共にテーブル ビューも含まれていることに注意してください。

ご協力いただきありがとうございます。

4

3 に答える 3

1

私もこの問題を解決するのに苦労しましたが、ついに解決しました。インターフェイス ビルダーに UIDatePicker を追加する代わりに、動的またはプログラムで追加します。それは確かに私にとってはうまくいき、あなたにもうまくいくことを願っています. UIDatePicker *_datePicker=[[UIDatePicker alloc] initWithFrame:frame]; [self.view addSubview:_datePicker];

于 2010-07-24T07:11:46.920 に答える
0

これはほぼ確実に参照カウントの問題です。UIDatePicker通常の操作中にView Controller(プロトコルを実装した場所であるため、あなたの のデリゲートであると想定しています)が解放されるのは奇妙に思えますが、デリゲートが設定されていることを最初に確認する必要があります。ポップアップ ビューを表示する時点で有効なオブジェクトのままです。

于 2010-05-19T20:09:01.920 に答える
0

おもしろいことの 1 つは、presentModalViewController メッセージを UIViewController に渡すときと同じように、[presentPopover...] メッセージを渡した後に UIPopOverController 参照を解放することです。私もこの問題に直面しました。あなたができることの1つは次のようなものです

self.funnyPopoverController = aPopoverController;

(もちろん、funnyPopoverController はここで type プロパティを保持します)。

そうしないと、コードを長い時間_t時間見つめずに何が起こっているのかを予測するのは困難です:)

于 2010-05-31T23:49:11.877 に答える