#import
#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, который должен управлять этими субконтроллерами -viewController. Позже он также станет их делегатом, который будет решать, следует ли показывать один контроллер или нет.
rootViewController надежно закреплен в UIAppDelegate и будет оставаться активным все время.
Так правильно ли сделать эти sub -viewControllers слабыми? Я не уверен на 100%, но, насколько я понимаю, слабые указатели освобождаются, когда на них не указывает сильный указатель. Так как корень сильный, правильно сделать их слабыми, верно?
#import
@class UCRootViewController; @interface UCOverviewController : UIViewController @property (weak, nonatomic) UCRootViewController *rootviewController; Это заголовок одного из моих подчиненных -viewController. У них есть слабый указатель на делегат (позже )rootviewController. Достаточно ли объявить
@class UCRootviewController
, чтобы они вызывали методы делегата? Мне это вообще нужно?спасибо
РЕДАКТИРОВАТЬ :Я только что прочитал хорошую статью о ViewControllers и отрывок:
Всегда используйте высококачественные -контейнеры контроллера представления или +[UIViewController presentModalViewController :анимированный :] для отображения контроллеров представления в вашем приложении. Если вам нужно сохранить ссылку к контроллеру представления где-нибудь, используйте слабую ссылку, за исключением случаев, когда вы действительно хочу, чтобы он оставался в живых дольше для целей кэширования. В таком случаях обязательно правильно реагируйте на нехватку -памяти.
Здесь сказано использовать слабую ссылку, что вы думаете по этому поводу?