2

私はiPadアプリをテストするところまで開発しましたが、iOS4.3で開発しました。これで、シミュレーターで5.0に更新し、5.0を実行するiPadでテストするためのAppleの手順も実行しました。

4.3シミュレータでは、すべて正常に動作します。しかし、5.0シミュレーターとiPadでは、UIButtonsから発生したすべてのポップオーバーがアプリをクラッシュさせます。正常に機能するナビゲーションバーボタンからポップオーバーが表示されます。

クラッシュする各ポップオーバーはその内容(pdfファイルを含むUIWebview)を表示しますが、画面上の任意の場所をクリックすると、アプリがクラッシュします(ポップオーバー内および外部)。

コードを投稿することはできますが、この説明が誰かにアイデアを与えるのに役立つことを願っています。ポップオーバーを手動で閉じたり、開いているかどうかを確認したりすることはありませんが、起動中のUIButtonに触れようとしただけでは発生しないため、それが発生している理由ではないと思います。さらに、4.3未満でそのまま動作します


編集:これはスティーブンのコメントのおかげで解決されました。popOverのコンテンツviewControllerに追加しました:

- (void) dealloc {
 [webView release];
 [super release];
}

通常、の代わりに呼び出しますが[super dealloc]、例外(exc_bad_access)を修正しませんでした。うまくいけば、私は問題にずさんなパッチを適用していません![super release][super dealloc]

4

1 に答える 1

0

このようなバグを収集するためのスレッドを開始しましたが、フォーラム警察はそれを破棄しました。iOS 5 には非互換性がたくさんあると言っておこう。

あなたの問題が何であるかを確実に言うことはできませんが、UINavigationController の変更に関係している可能性が高いため、UIViewController の navigationController がポップアップで nil になり、parentViewController が代わりになります。

残念ながら、parentViewController は新しいため、たとえば、respondsToSelector:@selector(parentViewController)parentViewController が存在する場合はそれをテストして取得し、存在しない場合は navigationController を取得する必要があります。

私たちが持っているアプリの約 30 か所にこのロジックを追加する必要がありました。

于 2011-11-22T12:15:03.673 に答える