Различные способы инициализации объектов в Objective-C - PullRequest
2 голосов
/ 28 октября 2011

Существует два способа инициализации объектов в Objective-C, а именно:

1) AVCaptureSession *captureSession = [[AVCaptureSession alloc] init];

2) AVCaptureSession *session = [AVCaptureSession new];

Похоже, что они делаютта же работа.В чем разница между ними?Или «новый» это просто новинка от iOS5?

Буду благодарен за ответ

Артем

1 Ответ

3 голосов
/ 04 ноября 2011

new - это сокращенный способ выполнения alloc / init, который должен работать на любом объекте, но это в основном похмелье от Smalltalk, и вызовы new никогда не принимают аргументов, поэтому вы не видите, что он вообще используется многоподробнее.

Таким образом, эти два должны быть идентичны, и это новинка, но не iOS 5.

РЕДАКТИРОВАТЬ: в дополнение к этому, new определено на NSObject как что-то, что вызывает alloc, а затем init и считается доступным со времен Mac OS X 10.0 (что является началом времени для документации Apple).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...