Я знаю, что вы не должны использовать это, чтобы решить, следует ли изменить массив:Что можно предположить о кластере классов NSMutableArray/NSArray?
if ([possiblyMutable isKindOfClass:[NSMutableArray class]])
Но сказать, что я пишу метод и нужно возвращать либо NSMutableArray
или NSArray
, в зависимости от изменяемости от possiblyMutable
. Класс, использующий мой метод, уже знает, приемлемо ли изменить возвращаемый массив. Независимо от того, приемлемо ли изменение возвращаемого массива напрямую коррелировать с тем, приемлемо ли изменение possiblyMutable
.
В этом конкретном случае этот код безопасен? Мне кажется, что если не приемлемо для изменения массива, но мы случайно получим изменяемый массив, это нормально, потому что класс с использованием моего метода не будет пытаться его изменить. И если это является приемлемым для изменения массива, тогда мы будем всегда получить possiblyMutable
как NSMutableArray
(хотя это часть, о которой я не совсем понимаю).
Итак ... безопасно или нет? Альтернативы?
Почему бы не использовать '-mutableCopy', если вам действительно нужен изменяемый массив? – kennytm