цикл for в фоновом потоке обращается к каждому индексу более одного раза --- iPhone dev - PullRequest
0 голосов
/ 21 августа 2009

У меня есть метод getImageData, который я вызываю как [self executeSelectorInBackground: @selector (getImagesData) withObject: nil]; по моему мнению DidLoad. getImageData имеет цикл for. Я понял, что каждый индекс в цикле вызывается более одного раза. Я также обращаюсь к статическому NSMutableArray в цикле. Когда я не сохраняю массив, это дает мне исключительный плохой доступ. Если я сохраню это, цикл будет бесконечным

1 Ответ

0 голосов
/ 21 августа 2009

Похоже на проблему параллелизма (и, кроме того, что вы на самом деле не решаете проблему, понимая ее - я бы посоветовал прочитать Руководство по управлению памятью Какао [так же, как iPhone) и одно из Руководств по параллелизму, представленных в документация).

В частности, вы могли бы вызывать -performSelectorInBackground: дважды?

Цикл for не будет волшебным образом повторно посещать индексы, если они не являются чем-то в вашем коде:

  1. изменение инварианта цикла
  2. повреждение памяти абсолютно правильным образом
  3. вы случайно выполняете цикл несколько раз -

Если я сохраню его, цикл будет выполняться бесконечно означает, что вы делаете 3. В противном случае происходит сбой только потому, что вы неправильно управляете памятью; это признак другой проблемы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...