编辑:我停留在单个呼叫到手动保留阵列初始化后立即,以及固定它。杜尔。感谢。

我保持一个NSMutableArray在一个UIScrollView子类,并且我添加到它一个UIImageView子类的实例,因为每个被添加作为一个子视图。它需要一个可变的数组,我打算重新安排他们的阵列最终在顺序;这个错误发生之前,我甚至尝试这样做。我用NSLogs表明该阵列具有计数10,直到并包括applicationDidBecomeActive:叫我的AppDelegate,并增加了一个定时器火在运行循环的每个0.001S。它触发第一次,它无法找到数组了!我很迷茫,一直在试图跟踪下来了几个小时。

计时器的正常工作(即,当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实例代替。不知道它来自何方。我的事件处理方法都没有试图重新分配阵列或改变它。任何想法可能是想错了?我完全迷惑。

有帮助吗?

解决方案

-retain阵列?

其他提示

也许你的对象被释放?如果你保留它会发生什么。这是否工作,或者你只是得到了内存泄漏?

  

其10个元素是不是被取代   单UITouchData实例。不知道   它来自何方。

时它总是一个UITouchData实例?总是? - 因为,那似乎是一个死赠品(如果它不一样的每次)内存问题

我停留在一个呼叫进行初始化之后立即保留至阵列,并固定它。 DUR。

感谢您的建议。由于通常有这样的问题发生,这是非常简单的,终于让步,并要求帮助触发的解决方案,让我觉得自己很傻。 :d

是否视图初始化并释放数组?结果 你确定了一个NSView没有释放之间?点击 您可以检查是否[viewController view](== printCount内个体经营)的内存地址是每一个你的计时器调用printCount时间相同。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top