Если это ...
NSLog(@"sourceValues is %@", sourceValues);
... сбой вашей программы, это потому, что sourceValues
уже выпущен.Где бы вы ни release
sourceValues
, установите его на nil
.
[sourceValues release], sourceValues = nil;
Если ваше приложение все еще падает, это потому, что массив был переиздан где-то еще.То есть вы не правильно сбалансировали удержания и выпуски.Сначала попробуйте «построить и проанализировать» и исправить все проблемы, которые выявляет статический анализатор.Затем включите обнаружение зомби и посмотрите, где вы впервые отправляете сообщения об освобожденном объекте.
Обратите внимание, что [sourceValues class] == [NSMutableArray class]
не будет работать, и этот шаблон никогда не следует использовать для проверки того, принадлежит ли экземпляр определенному классу.,Вы всегда должны использовать isKindOfClass:
или isMemberOfClass:
.
Однако, поскольку вы все равно не можете различить изменяемый или неизменяемый массив, нет смысла проверять в первую очередь.