编辑:我卡在一次调用手动保留数组初始化后,并修复它。杜尔。谢谢。iPhone - 在appDidBecomeActive和运行循环开始之间数组丢失?
我在UIScrollView子类中保留了一个NSMutableArray,并添加了一个UIImageView子类的实例,因为每个实例都添加为子视图。它需要是一个可变数组,因为我打算最终重新排列它们在数组中的顺序;这个错误发生之前,我甚至尝试这样做。我已经使用NSLogs来显示数组已经计数10,直到包括applicationDidBecomeActive:在我的AppDelegate中被调用,并且添加了一个定时器在运行循环中每0.001秒触发一次。第一次启动时,它无法再找到阵列了!我感到非常困惑,一直试图追踪这个小时。
计时器的工作正常(即当printCount:不访问数组时,这很好),它只是当我尝试访问数组时,它打破了。定期调用printCount:如下:但是第一次定时器触发我可能会在这两个printCount调用之间发生什么?
- (void)applicationDidBecomeActive:(UIApplication *)application {
NSTimer *timer = [[NSTimer scheduledTimerWithTimeInterval:0.001f
target:[viewController view]
selector:@selector(printCount)
userInfo:nil
repeats:YES]
retain];
[[NSRunLoop currentRunLoop] addTimer:timer forMode:NSDefaultRunLoopMode];
[[viewController view] printCount];
}
我一直无休止地通过调试程序进入程序。这个数组在这一点上是正确的,即使其内容被改变,它的内存地址也是一样的。但是,之后只有对象 - 其10个元素被单个UITouchData实例替换。不知道它来自哪里。我的任何事件处理方法都不会尝试重新分配数组或对其进行更改。任何想法可能会出错?我完全迷惑。
你如何分配和分配你的数组到变量?你能发布代码吗? – 2010-01-15 17:38:02
请说明如何实现'-printCount'。 – kennytm 2010-01-15 17:40:49