2011-06-30 11 views
0

次のコードを使用する場合、タブコントローラのビューを解放するには何かする必要がありますか?アプリに取り組んでいる間、私はプロジェクトを解析したのだが、MyAppDelegate.maddSubview:iOSメモリ管理、UIWindow addSubview:およびタブコントローラ

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 
    [window addSubview:[tabController view]]; 
    [window makeKeyAndVisible]; 
    return YES; 
} 

MyAppDelegate.h

@interface MyAppDelegate : AppDelegate { 
    UIWindow *window; 
    IBOutlet UITabBarController *tabController; 
} 

@property (nonatomic, retain) IBOutlet UIWindow *window; 
@property (nonatomic, retain) IBOutlet UITabBarController *tabController; 

@end 

を使用して線の電位のリンクがあることを報告します

@implementation MyAppDelegate 

@synthesize tabController, window; 

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

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 
    [window addSubview:[tabController view]]; 
    [window makeKeyAndVisible]; 
    return YES; 
} 

@end 

私は離婚する前にtabController.viewをリリースする必要がありますかtabControllerさんですか?またはapplication:didFinishLaunchingWithOptions:の方法の中で? This questionは、私はちょうどdeallocでコントローラをリリースする必要があると言われています。

ありがとうございます! uはそう自己

技術
- (void)dealloc { 

     [self.tabController release]; 

     self.tabController=nil; 

     [self.window release]; 

     self.window = nil; 


    } 

答えて

0

でそれを呼び出すsythesizedいる

+0

ありがとう。これは問題を「修正」します。今興味深いのは、Analyzeメッセージを少しは理解し始めており、UIImageViewが '[tabController tabBar]'に(バックグラウンドの)サブビューとして追加されていなければならないことがわかりました。しかし、これはまだ分かっていて、私の質問に答えるのはとても良いことです。 – Rob

0

、あなたはいくつかの点でtabControllerを解放する必要がありますが、現実には、それは問題ではありません。 windowはプログラムの存続期間中存在し、プログラムが終了するとすべてのメモリがパージされるため、windowが保持するオブジェクトのリークは発生しません。

ビルド/ビルドと分析を実行すると警告が表示されますが、無視しても問題ありません。このレベルで追加されたnavController、またはメインウィンドウのその他の保持されたサブビューにも同じことが適用されます。

+0

ここでは、どこにウルウィンドウがありますか? –

+0

私はUIWindowがどのように繋がっているのかという質問を更新しました。ありがとう! – Rob

+0

私はウィンドウのibをウィンドウに接続することを望む –

関連する問題