1

ストーリー ボードのタブ バー コントローラー用に UITabBarControllerDelegate を作成しようとしています…

#import <Foundation/Foundation.h>

@class CountryPickerViewController;

@interface TabBarDelegate : NSObject <UITabBarControllerDelegate>

@property (strong) CountryPickerViewController *countryPickerViewController;

- (void) tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController;

@end

Interface Builder を使用してオブジェクトを作成し、次のようにデリゲートとして割り当てました。

インターフェイス ビルダー ストーリーボード編集

別のタブに切り替えると、クラッシュします。ここで何が起こっていて、どうすれば修正できますか?

EDIT:ちなみに、のメソッド実装tabBarController:didSelectViewController:は空です(特定のロジックは含まれていません)

EDIT2:まともなスタックトレースが得られません。

問題のあるスレッド

そしてEXC_BAD_ACCESSTab Bar Delegateオブジェクトがゼロになる可能性があると思いますか? なぜこれが起こっているのでしょうか?

EDIT3 : NSZombies を有効にしましたが、Interface Builder で作成したオブジェクトが何らかの理由でリリースされるのが早すぎることがわかりました。これは正常ですか?

2012-08-01 12:41:11.591 MyApp[15437:707] *** -[TabBarDelegate respondsToSelector:]: message sent to deallocated instance 0x194fe0
4

1 に答える 1

1

IBOutlets は保持されません。ビューで使用するのに十分な時間保持するには、タブ バー デリゲートへの強力な参照が必要です。現在、ビューがロードされた直後に解放されています。

于 2012-08-01T16:53:17.517 に答える