Я пишу категорию NSArray, включающую в себя сообщение -objectAtRandom, которое возвращает объект из случайного индекса (что-то похожее на выбор Python ).
NSArray
-objectAtRandom
Если я автоматически выпущуэтот объект, прежде чем вернуть его?Я верю, что не должен, но я не уверен ...
Согласно нормальным правилам управления памятью, нет, не следует. Поскольку вы, вероятно, используете objectAtIndex: для возврата объекта, вам не нужно ничего делать с памятью.
objectAtIndex:
Я бы написал return [[object retain] autorelease] - это гарантирует, что даже если массив будет освобожден, пользователь сможет работать с объектом до тех пор, пока не закончится текущий цикл цикла выполнения.
return [[object retain] autorelease]