2010-11-22 11 views
3

私はUITableViewControllerクラスから継承するビューが3つあります。最初のものは位置のリストを示し、2番目のものは最初のビューで選択された行の位置を表す注釈付きのマップを示し、最後のものは位置(アドレス、画像、...)に関する情報を示します。私が2番目のビューに戻るボタンを押すと、このエラーメッセージが表示されることがあります。'NSInvalidArgumentException'、理由: ' - [__ NSArrayI leftCapWidth]

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSArrayI leftCapWidth]: unrecognized selector sent to instance 0x6b57110' 
*** Call stack at first throw: 
(
0 CoreFoundation      0x02576919 __exceptionPreprocess + 185 
1 libobjc.A.dylib      0x026c45de objc_exception_throw + 47 
2 CoreFoundation      0x0257842b -[NSObject(NSObject) doesNotRecognizeSelector:] + 187 
3 CoreFoundation      0x024e8116 ___forwarding___ + 966 
4 CoreFoundation      0x024e7cd2 _CF_forwarding_prep_0 + 50 
5 UIKit        0x003935b9 -[UIImageView(UIImageViewInternal) _shouldDrawImage:] + 35 
6 UIKit        0x00392f3a -[UIImageView(UIImageViewInternal) _canDrawContent] + 411 
7 UIKit        0x00308f20 -[UIView(Internal) _didMoveFromWindow:toWindow:] + 955 
8 UIKit        0x00308cfc -[UIView(Internal) _didMoveFromWindow:toWindow:] + 407 
9 UIKit        0x00308cfc -[UIView(Internal) _didMoveFromWindow:toWindow:] + 407 
10 UIKit        0x00308cfc -[UIView(Internal) _didMoveFromWindow:toWindow:] + 407 
11 UIKit        0x0031119a -[UIScrollView _didMoveFromWindow:toWindow:] + 71 
12 UIKit        0x00308cfc -[UIView(Internal) _didMoveFromWindow:toWindow:] + 407 
13 UIKit        0x00307b10 -[UIView(Hierarchy) _postMovedFromSuperview:] + 166 
14 UIKit        0x00300a34 -[UIView(Internal) _addSubview:positioned:relativeTo:] + 1080 
15 UIKit        0x002fed87 -[UIView(Hierarchy) addSubview:] + 57 
16 UIKit        0x0050a829 -[UINavigationTransitionView transition:fromView:toView:] + 551 
17 UIKit        0x0050a28d -[UINavigationTransitionView transition:toView:] + 56 
18 UIKit        0x00381329 -[UINavigationController _startDeferredTransitionIfNeeded] + 266 
19 UIKit        0x00380fc7 -[UINavigationController _popViewControllerWithTransition:allowPoppingLast:] + 386 
20 UIKit        0x00381141 -[UINavigationController popViewControllerAnimated:] + 57 
21 UIKit        0x003805b6 -[UINavigationController navigationBar:shouldPopItem:] + 148 
22 UIKit        0x00327143 -[UINavigationBar _popNavigationItemWithTransition:] + 116 
23 UIKit        0x0032def3 -[UINavigationBar _handleMouseUpAtPoint:] + 605 
24 UIKit        0x002f42ff -[UIWindow _sendTouchesForEvent:] + 567 
25 UIKit        0x002d61ec -[UIApplication sendEvent:] + 447 
26 UIKit        0x002daac4 _UIApplicationHandleEvent + 7495 
27 GraphicsServices     0x02ddcafa PurpleEventCallback + 1578 
28 CoreFoundation      0x02557dc4 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 52 
29 CoreFoundation      0x024b8737 __CFRunLoopDoSource1 + 215 
30 CoreFoundation      0x024b59c3 __CFRunLoopRun + 979 
31 CoreFoundation      0x024b5280 CFRunLoopRunSpecific + 208 
32 CoreFoundation      0x024b51a1 CFRunLoopRunInMode + 97 
33 GraphicsServices     0x02ddb2c8 GSEventRunModal + 217 
34 GraphicsServices     0x02ddb38d GSEventRun + 115 
35 UIKit        0x002deb58 UIApplicationMain + 1160 
36 TravelGuideTemplate     0x00002730 main + 102 
37 TravelGuideTemplate     0x000026c1 start + 53 
) 
terminate called after throwing an instance of 'NSException' 

私はこのメッセージを受け取っていません。誰か助けてくれますか?

読んでいただきありがとうございます。

答えて

4

私はこれはメモリ管理の問題です。私はあなたのアプリが以前にリリースされたオブジェクトにアクセスしようとしていると思う。で、NSZombieEnabledという名前の変数を追加arguments

  • Variables to be set in the environment下、

    1. はダブル
    2. は2番目のタブを開き、実行ファイルグループ内の実行をクリックします。

      NSZombieを有効にして、このエラーメッセージを変更するかどうかを確認YESの値を入力し、その前にあるチェックボックスを選択して有効にします。

    3. プログラムを再度実行してください。
    4. ??
    5. 利益
  • +0

    このエラーメッセージが表示されます。 - [UIImage isKindOfClass:]:解放されたインスタンス0x6b751a0にメッセージが送信されました。同じエラーメッセージですか? –

    +0

    あなたはUIImageをリリースしてはいけないどこかで(自動)リリースしています。私はそのすべてのviewWillDisappearをチェックし、そのリリースのviewDidDisAppearメソッドを確認します。あなたはその問題を追跡するためにアナライザを試しましたか? Buildメニューから 'Clean all targets'を使い、後で同じメニューから' Build and analyze'を実行してください。そのバグを発見した場合は、NSZombieEnabledの前のチェックを外すことを忘れないでください。 –

    +0

    ありがとうございました。今はうまくいくと思います。私はアナライザーを知らなかった。私は、オートレリースされたUIImageViewに挿入されたイメージをオートレリースしていました(オートレリースされたオブジェクトが多すぎます、これはエラーであるかもしれません)。このすべては、あまりにも速い目的を学ぶために起こります。私はあなたに1ドル借りています。 –

    関連する問題