Ссылки являются нулевыми после синтеза - PullRequest
0 голосов
/ 15 сентября 2011

У меня проблема с этим кодом.

@class CatalogMenu;
@class SettingsMenu;

@interface TabBar : UIViewController {
    CatalogMenu *catalogMasterView;
    SettingsMenu *settingsMasterView;
}

@property (nonatomic, retain) IBOutlet UITabBarController *tabBarController;

@property (nonatomic, retain) IBOutlet CatalogMenu *catalogMasterView;
@property (nonatomic, retain) IBOutlet SettingsMenu *settingsMasterView;

Я получил подкласс UIViewController, который реализует интерфейс вверху. Чтобы использовать мои классы в этом UIViewController, я импортировал два класса CatalogMenu и SettingsMenu. Проблема состоит в том, что все переменные являются нулевыми после синтеза. Это означает, что все они не получили адреса в памяти. Проблема исчезнет, ​​если я изменю подкласс на NSObject. Но это не может быть ответом, потому что тогда я не могу использовать функции UIViewController. Это известная проблема?

1 Ответ

2 голосов
/ 15 сентября 2011

Синтезирование на самом деле не выделяет ваши переменные, поэтому они имеют нулевое значение, оно просто предоставляет методы Getter / Setter для доступа к переменным. В вашем методе init в классе TabBar вам нужно выделить каталог CatalogMasterView и settingsMasterView

.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...