Ответ 1
Я излагаю это, потому что я нигде не нашел вопроса, но, похоже, довольно легко сделать ошибку, если вы привыкли работать с IBOutlets, но не IBOutletCollections.
Я сделал свойства weak
, потому что это то, что я обычно делаю для IBOutlets по причинам, обсуждаемым в другом вопросе.
То, что я пренебрег осознанием, заключается в том, что IBOutletCollection является переменной экземпляра класса, а не просто произвольной ссылкой в иерархию представлений. Поэтому, если это слабое свойство, NSArray *
будет немедленно выпущено, потому что иерархия представления не сохраняет его, как и для других свойств IBOutlet.
Исправление прост, сделайте свойство strong
:
@property (nonatomic, strong) IBOutletCollection(UIImageView) NSArray *images;
Обновить. В соответствии с этим ответом почти все IBOutlets должны быть сильными, если только они не должны быть слабыми, чтобы избежать цикла сохранения. Это ново, и в большинстве документов все еще говорят, что розетки должны быть слабыми.