Никто не может сказать это точно (только инженер Apple, который будет уволен после утечки этой информации), но если вы посмотрите на альтернативные решения / реализации Foundation, например, GNUstep, вы увидите, что «второйТип автоматически высвобождаемых объектов создается следующим образом:
+ (NSString *) stringWithString:(NSString *)otherString
{
return [[[self alloc] initWithString:otherString] autorelease];
}
Однако пулы автоматического освобождения по-прежнему могут реализовывать свои собственные методы для быстрого освобождения объектов.Вы можете, еще раз, взглянуть на NSAutoreleasePool.m GNUstep, чтобы узнать, что именно он делает.
Мне также кажется, что вы не уверены, является ли id
или нетуказатель. Это .