Если я использую его в массиве, он изменит существующий массив или вернет новый?
номер
Прежде всего, прочитайте подпись:
- (void)makeObjectsPerformSelector:(SEL)aSelector
void
без звездочек после него означает «ничего не возвращает».
Во-вторых, обратите внимание, что это метод NSArray, который является неизменным классом. Следовательно, makeObjectsPerformSelector:
не изменяет принимающий массив, потому что это невозможно.
Существует NSMutableArray, и, поскольку это подкласс NSArray, он наследует makeObjectsPerformSelector:
. Однако, если NSMutableArray изменил поведение этого метода, его документация будет иметь свой собственный листинг для метода (см. Множество определений init
в документации различных классов). Нет такого списка, поэтому вы можете безопасно (и правильно) сделать вывод, что -[NSMutableArray makeObjectsPerformSelector:]
работает точно так же, как -[NSArray makeObjectsPerformSelector:]
.
Объекты могут изменить себя в ответ на ваше сообщение, но сам массив будет содержать те же объекты после makeObjectsPerformSelector:
, что и до него.