#import <UIKit/UIKit.h>
#import "UCMapviewController.h"
#import "UCMenuviewController.h"
#import "UCOverviewController.h"
@interface UCRootViewController : UIViewController
@property (weak, nonatomic) UCMapviewController *mapviewController;
@property (weak, nonatomic) UCMenuviewController *menuviewController;
@property (weak, nonatomic) UCOverviewController *overviewController;
這是我的UCRootViewController應該管理這些sub-viewControllers的聲明。他以後也會成爲他們的代表來處理一個控制器應該顯示與否。我的sub-viewControllers的弱或強屬性?
rootViewController在UIAppDelegate中保持強壯,並始終保持活動狀態。
所以這是正確的,使這些sub-viewController弱?我不是100%確定的,但據我瞭解,當沒有強指針指向它們時,弱指針會被釋放。所以,當根源很強時,讓它們變弱是正確的,對吧?
#import <UIKit/UIKit.h>
@class UCRootViewController;
@interface UCOverviewController : UIViewController
@property (weak, nonatomic) UCRootViewController *rootviewController;
這是我的一個sub-viewControllers的標題。他們有一個指向(稍後)委託rootviewController的弱指針。聲明@class UCRootviewController
是否足以讓他們調用委託方法?我甚至需要這個嗎?
感謝
編輯:我剛讀a nice article about ViewControllers和通道:
始終使用高品質的視圖控制器容器或 + [UIViewController中presentModalViewController:動畫:]在應用程序中顯示的視圖控制器。如果您需要在某個地方將參考文獻 保留給視圖控制器,請使用弱引用,除非您爲了高速緩存目的而確實希望它保持更長的活動時間。在這種情況下,請務必正確響應低內存條件。
它說使用弱引用,你對此有何看法?
它說使用弱引用時使用使用容器本身強烈您的Viewcontroller。正如我在我的回答中所寫的那樣,例如,當您使用導航控制器時,使用弱引用就可以。但是當你想保留控制器,因爲你只是將他們的視圖作爲子視圖添加到你當前的VC視圖中,那麼你需要使用強指針,否則它們將被過早地釋放。 –
好的非常感謝你 – MJB