Настройка значений свойств, которые не прилипают / viewDidLoad вызывается несколько раз в Xcode 4.3
-
28-10-2019 - |
Вопрос
Так что это странно.
У меня есть собственность:
@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.
}
Поскольку я использую раскадровки, само наличие этого метода вызывало всевозможные проблемы.Я довольно смущен, потому что я, вероятно, скопировал это и вставил откуда-то, не думая об этом.
В любом случае, я надеюсь, что это кому-то поможет.Это только убило большую часть моего дня.
Другие советы
Возможно, то, что вы присваиваете этому свойству, не указано нигде в другом месте.Таким образом, после присваивания единственным указателем на этот объект является ваше свойство, и это неделя таким образом, объект выбрасывается из кучи