Настройка значений свойств, которые не прилипают / viewDidLoad вызывается несколько раз в Xcode 4.3

StackOverflow https://stackoverflow.com/questions/9353831

Вопрос

Так что это странно.

У меня есть собственность:

@property (weak, nonatomic) Something *something; // .h
@synthesize something=_something                  // .m

По какой-то причине установка этого свойства не сохраняет _something набор.

Я даже написал сеттер:

- (void)setSomething:(Something *)something {
    _something = something;
}

Прошедший something является допустимым экземпляром объекта.Однако, переступив черту _something = something, _something равно нулю и something все еще является допустимым объектом.

Это сводит меня с ума, потому что мне все кажется правильным.Я писал одно и то же тысячу раз.Единственное, что является новым, так это то, что это в Xcode 4.3.

Будем признательны за любую помощь.Спасибо!

ETA:Так, может быть, это намек?viewDidLoad вызывается огромное количество раз, партиями по 4.Я использую раскадровки, поэтому вид автоматически настраивается правильно.Может быть, контроллер представления неправильно загружается, инициализируется или что-то в этом роде?У меня есть набор классов, и все выглядит так, как будто это должно работать, но это не так.

Это было полезно?

Решение

Ладно, я все понял.Я не уверен, откуда взялся этот метод, но это было в коде SomethingViewControler:

- (void)loadView {
    // If you create your views manually, you MUST override this method and use it to create your views.
    // If you use Interface Builder to create your views, then you must NOT override this method.
}

Поскольку я использую раскадровки, само наличие этого метода вызывало всевозможные проблемы.Я довольно смущен, потому что я, вероятно, скопировал это и вставил откуда-то, не думая об этом.

В любом случае, я надеюсь, что это кому-то поможет.Это только убило большую часть моего дня.

Другие советы

Возможно, то, что вы присваиваете этому свойству, не указано нигде в другом месте.Таким образом, после присваивания единственным указателем на этот объект является ваше свойство, и это неделя таким образом, объект выбрасывается из кучи

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top