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), не отпускайте его!
Вместо множества переменных с одинаковыми именами используйте массив для хранения объектов. Тогда освобождение будет только освобождением массива.