2012-03-22 2 views
1

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

-[__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]; 
     } 

Update:

Я так решил

NSMutableArray *ArrayOfGameidOfPlayerToRemove = [yournsarray mutableCopy]; 

ответ

0

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

0

'__NSArrayI' - здесь у вас есть неизменяемый массив.

Его стоит проверить ваше внедрение ArrayOfGameidOfPlayerToRemove arrray -make, что вы initalized в NSMutableArray, а не NSArray

+0

Чтобы уточнить, вы пытаетесь удалить/заменить/изменить содержимое массива, который не изменен! – theiOSDude

Смежные вопросы