NSCFArray - это конкретный класс для NSMutableArray и NSArray.Похоже, вы просто ошибаетесь по поводу того, какой у вас массив.Поскольку код, который вы разместили, явно не является вашим реальным кодом (он даже не скомпилируется и не обнаружит проблему, даже если бы это произошло), невозможно сказать, в какой момент ваша программа назначает неизменяемый массив переменной.Но это звучит так, как будто это происходит.
Я скажу (и, пожалуйста, не воспринимайте это как личную критику - это просто наблюдение), что код, который вы разместили, предполагает, что вы не обладаете достаточным пониманиемо том, как работают классы и идентичность объектов.Это, вероятно, основная причина здесь.
Все три ваши переменные вы инициализируете с помощью [[Something alloc] init]
, но затем вы сразу же выбрасываете объект и заменяете его чем-то другим.Это означает, что исходный объект (в данном случае NSMutableArray) просто просочился, а переменная теперь содержит новый объект, который вы назначили.Если этот новый объект не является NSMutableArray, он не будет волшебным образом превращен в один только потому, что переменная содержала ранее.