iOS - сохранение ссылки на основной UIViewController в статическом синглтон-классе - PullRequest
1 голос
/ 10 ноября 2011

У меня есть статический одноэлементный класс, который я использую для доступа к основному UIViewController (который создается appdelegate) и через него все подчиненные UIViewControllers.

Вот как я это объявляю

@interface mySingleton : NSObject
{
    ViewController* m_viewController;
}
@property (nonatomic,assign) ViewController* m_viewController

И в файле .m я получаю эту ошибку:

@synthesize m_viewController; // ERROR: Existing ivar "m_viewController" for unsafe_unretained property "m_viewController" must be __unsafe_unretained.

Я решаю это, помещая __unsafe_unretained в объявлениекак говорится в сообщении об ошибке, однако ... есть ли у меня проблемы с сохранением свойства __unsafe_unretained в m_viewController?Он представляет главное меню приложения и никогда не должен быть освобожден.Таким образом, наличие висящего указателя никогда не должно вызывать проблем, так как оно позже будет выпущено AppDelegate, верно?

1 Ответ

0 голосов
/ 10 ноября 2011

Если вы не хотите выпускать m_viewController, почему бы не использовать strong вместо assign?

Кроме того, поскольку обычно делегат приложения выделяет контроллер основного представления, а делегат приложения доступен через синглтон UIApplication, почему бы не сохранить ссылку на контроллер основного представления вместо создания отдельного класса просто для выполнения что?

...