Предполагая, что users
в users = [[MySingleton sharedClass] getUsers]
является переменной экземпляра, вы забываете стать владельцем массива.Если вы хотите претендовать на владение объектом (например, этим массивом), вам нужно отправить его retain
, чтобы сообщить, что вы хотите, чтобы он оставался.И когда вы закончите с этим, вам нужно отправить его release
, чтобы сказать об этом.Сеттеры обрабатывают это для вас, поэтому, как правило, рекомендуется использовать сеттеры вне методов init и dealloc.Таким образом, предполагая, что у вас есть установщик для users
, вы можете сделать одно из следующих действий:
self.users = [[MySingleton sharedClass] getUsers];
/* OR */
users = [[[MySingleton sharedClass] getUsers] retain];
Первый способ обычно лучше, но вы не хотите вызывать установщики в init…
или dealloc
методы, потому что они могут иметь побочные эффекты, которые там нежелательны.Поскольку здесь нет ни одного из этих методов, вы можете просто использовать первый.