arrayWithObjects
является "конструктором удобства".
Это будет делать:
return [[[NSArray alloc] initWithObjects:@"hai",@"how",@"are",@"you",nil] autorelease]
для вас.
Это просто удобный метод для получения автоматически освобожденного объекта при улучшении читаемости оператора. Имейте в виду, что тот факт, что объект автоматически освобожден, является простым соглашением языка (а не правилом, поэтому вы можете поступить иначе, но я бы не советовал).