KVC выпускает объекты, используя valueForKeyPath?

У меня есть много названных объектов _Obj_1, _Obj_2, так далее...
И я хочу выпустить все.

Я использую KVC. В частности, чтобы выпустить все, я использую:

MyClass *obj = nil;
for ( int i=1 ; i<=14; i++ ) {
  obj = [self valueForKeyPath:[NSString stringWithFormat:@"_Obj_%d", i]];
  [obj release];
}

анализатор лязга скажи мне [obj release];

Неправильное уменьшение счетчика ссылок объекта, который в данный момент не принадлежит вызывающей стороне?

Как я могу это исправить?

Это не проект ARC.

1 ответ

Решение

Это можно исправить очень легко

Если вам не принадлежит объект (вы не называли retain), не отпускайте его!

Вместо множества переменных с одинаковыми именами используйте массив для хранения объектов. Тогда освобождение будет только освобождением массива.

Другие вопросы по тегам