Я использую делегата для хранения данных для своего приложения. У меня есть tabviewcontroller с контроллером навигации в качестве первого контроллера представления. Когда я устанавливаю делегата, используя
delegate = [[UIApplication sharedApplication] delegate];
делегат имеет значение NULL вне метода инициализации.
Однако он отлично работает, когда помещается в viewDidLoad. Есть идеи, почему это могло быть?
ОБНОВИТЬ
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
delegate = [[UIApplication sharedApplication] delegate];
}
return self;
}
delegate
в коде, который вы показываете: переменная экземпляра или локальная переменная? - person Caleb   schedule 05.07.2011delegate
и подумайте о том, чтобы показать весь метод, в котором находится рассматриваемый код. - person Caleb   schedule 05.07.2011delegate
имеет локальную область видимости для вашего метода инициализации. Вы не назначаете его чему-либо с большей областью действия или более длительным сроком службы, чем это. По крайней мере, это предположение, которое я сделал из кода, который вы показали - вы не показали нам, где вы объявляетеdelegate
где-либо, кроме как прямо здесь. - person Dan Ray   schedule 05.07.2011