Вот ключевая концепция, чтобы узнать о переменных и свойствах-членах: переменные-члены не совпадают с свойствами.
То есть при доступе к переменной-члену в вашем классе:
serverList = [NSArray array];
не то же самое, что self.serverList = [NSArray array];
serverList
само по себе означает, что вы обращаетесь к нему напрямую.
self.serverList
означает, что вы используете методы получения / установки для доступа к нему.
Обычно это не так уж важно при работе с базовыми типами переменных.Тем не менее, когда ваше свойство использует retain
или copy
, это означает, что ваш метод установки автоматически сохранит его при использовании, но не сделает это при непосредственном доступе к нему.
Это означает:serverList = [NSArray array];
не сохранит массив.self.serverList = [NSArray array];
сохранит массив.
Следует отметить, что [NSMutableArray arrayWithCapacity:1];
(и 99% других методов, которые не выделены) вернут объект, который был автоматически освобожден.Если вы хотите сохранить его для последующего использования, как это необходимо в этом случае, вы должны сохранить его в той или иной форме.