Есть несколько возможностей.
(1) Вы не храните массив, вы храните изменяемый массив (хотя вы этого не знаете!), А кто-то другой меняет его содержимое.Вместо retain
попробуйте copy
.
(2). Вы случайно изменили массив, на который указали.Вы можете выяснить это, установив точку останова на строке, в которой хранится ваш массив, и проследите, сколько раз он будет запущен.
Вы обязательно должны сделать (1), даже если это не исправит вашу ошибку.Все, что имеет изменяемый подкласс (то есть NSArray имеет NSMutableArray, NSSet имеет NSMutableSet и т. Д.) Должно быть copy
, а не retain
.