Ошибка замены объекта массива пустой строкой - PullRequest
1 голос
/ 22 марта 2012

Я получаю непредсказуемую ошибку, когда два из NSMutableArray имеют одинаковое значение с индексом 0, тогда я хочу удалить этот объект и заменить объект пустой строкой. Но приложение получает сбой, говоря

 -[__NSArrayI replaceObjectAtIndex:withObject:]: unrecognized selector sent to instance 0xe2a06b0
  2012-03-22 14:36:48.181 golf eScorer[3849:11f03] *** Terminating app due to uncaught exception  
  'NSInvalidArgumentException', reason: '-[__NSArrayI replaceObjectAtIndex:withObject:]: 
   unrecognized selector sent to instance 0xe2a06b0'  

Когда я отлаживаю с использованием точки останова, чем показывает журнал

2012-03-22 14:36:44.548 golf eScorer[3849:11f03] ArrayOfGameidOfPlayerToRemove....(
2
)
2012-03-22 14:36:44.549 golf eScorer[3849:11f03] discardedId...(
2
)

Вот моя строка кода:

 if([[ArrayOfGameidOfPlayerToRemove objectAtIndex:0] isEqualToString:[discardedId 
    objectAtIndex:0]])
        {
            [ArrayOfGameidOfPlayerToRemove replaceObjectAtIndex:0 withObject:emptyString];
        }

Обновление:

Я решил вот так

   NSMutableArray *ArrayOfGameidOfPlayerToRemove = [yournsarray mutableCopy];

Ответы [ 2 ]

0 голосов
/ 22 марта 2012

Кажется, переменная ArrayOfGameidOfPlayerToRemove является экземпляром NSArray.Вы можете заменить объект только в NSMutableArray

0 голосов
/ 22 марта 2012

'__ NSArrayI' - у вас здесь неизменный массив.

Стоит проверить вашу реализацию массива ArrayOfGameidOfPlayerToRemove - убедитесь, что вы инициализировали NSMutableArray, а не NSArray

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