Почему вы отправляете initWithUsername:
объекту, хранящемуся в переменной?Вы должны передавать результат alloc там напрямую (userLookupWS = [[SomeClass alloc] initWithUsername:…]
) и никогда не переинициализировать существующий экземпляр.
Кроме того, что вы странный (он уже инициализирован! Почему вы инициализируете его снова??), почти все init…
методы написаны в предположении, что они будут вызываться только один раз за экземпляр, поэтому отправка сообщения initWithWhatever:
в уже инициализированный экземпляр приведет к утечке всего, что принадлежит этому экземпляру.
Нет хорошего способа исправить это, кроме как просто не делать этого в первую очередь.Не отправляйте init
сообщения на уже инициализированный экземпляр.Самый простой способ избежать этого - отправить только сообщение init
непосредственно на возвращаемое значение alloc
([[SomeClass alloc] init…]
).
И, конечно, все, что alloc
возвращает, вы должнырелиз.Самый простой способ убедиться, что это происходит, - это немедленно высвободить объект: [[[SomeClass alloc] init…] autorelease]
.