Ios Can';t用于in-loop in函数

Ios Can';t用于in-loop in函数,ios,objective-c,Ios,Objective C,我不知道为什么这个for-in-loop不起作用。我使用的滑块在移动时调用valueChanged:。为了简化代码,我清理了所有的东西,但我只想知道为什么这不起作用: - (void)valueChanged:(CCControlSlider *)sender{ for(CCControlSlider *slider in self.arrayOfSliders){ NSLog(@"do something"); } } 它在EXC\u访

我不知道为什么这个for-in-loop不起作用。我使用的滑块在移动时调用
valueChanged:
。为了简化代码,我清理了所有的东西,但我只想知道为什么这不起作用:

- (void)valueChanged:(CCControlSlider *)sender{
        for(CCControlSlider *slider in self.arrayOfSliders){
            NSLog(@"do something");
        }
}
它在EXC\u访问错误时崩溃。我在这里做违法的事吗?谢谢

**编辑: 问题:self.arrayOfSliders被设置为(非原子,赋值),因此它没有被保留


我已经将我的项目设置为ARC(我已经习惯了!),问题应该得到解决。谢谢大家!

你做了什么调试?self.arrayOfSliders是一个尚未释放的有效对象吗


检查指针是否返回是不够的。尝试打开以查看对象是否已解除分配。

尝试使用此“简化”代码而不是您的代码,是否有效?能否向我们展示创建
self.arrayOfSliders的代码
?我的猜测是,您从未保留过它,因此在您在上面的代码中访问它之前,它会被释放。EXC_BAD_访问在我看来像是内存问题,ARC已启用?您看到任何日志语句吗?这是
值改变了吗:
甚至打过电话?这不是真正的答案,@Wain。问题在评论部分。不过,这可以作为一个回答;例如,您可以就调试OP应该做什么给出建议。恐怕我还不能评论,因为没有足够的重复。但当我能的时候,我会的。谢谢