KVC使用valueForKeyPath发布objs?

时间:2012-12-14 14:31:21

标签: iphone objective-c ios key-value-coding kvc

我有很多名为_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];
}

clang analyzer告诉我[obj release];

  

对象的引用计数的不正确减少   此时由来电者拥有?

我该如何解决?

它不是ARC项目。

1 个答案:

答案 0 :(得分:2)

这很容易修复

如果您不拥有该对象(您没有调用保留),请不要将其释放!

使用数组来保存对象,而不是使用大量具有相同名称的变量。然后释放只会释放一个数组。