6

私は iOS 開発に比較的慣れていないので、発生したエラーの根本原因を突き止めていただきありがとうございます。

Instruments (つまり、Allocations-Zombie Profiler) を使用してエラーをデバッグしようとしましたが、表示されたコール スタックを理解できませんでした。

ユーザー インターフェイスは次のようにリンクされます: TabBarController -> NavigationController -> TopPlacesTableViewController -> RecentPhotosTableViewController -> PhotoViewController

最後のビュー (つまり、PhotoViewController のビュー) で [戻る] ボタンをクリックすると、エラーが発生します。このアクションは、以前の RecentPhotosTableViewController を表示するはずですが、代わりに、viewWillAppear と ViewDidAppear のイベントの間に不明な割り当て解除されたオブジェクトにアクセスしました。

さらに、TopPlacesTableViewController と RecentPhotosTableViewController の親である GenericTableViewController があります。子は、子のビューに読み込まれるデータである NSMutableArray プロパティを親に設定します。

現在、iOS6 と XCode4.5 を使用しています。

[更新: コンソールに、「[UIView _forgetDependentConstraint:]: 割り当て解除されたインスタンス xxx にメッセージが送信されました」] という行が表示されました。

4

2 に答える 2

0

ARC を使用しておらず、以前のオブジェクトの受け渡しを保持していないように感じます。その間、前のオブジェクトが解放されてからアクセスします。

コードをリファクタリングして ARC を使用するか、retain または autorelease を配置できます。

于 2012-12-06T08:11:38.083 に答える
-1

[製品] > [スキームの編集] > [診断] に移動し、[ゾンビ オブジェクトを有効にする] をオンにします。

ブレークポイントを作成し、どのオブジェクトが割り当て解除されているかを段階的に確認します。オブジェクトへのポインターが削除され、OS がオブジェクトの割り当てを解除した可能性があります。

于 2012-12-06T08:59:08.213 に答える