Разбить его:
NSDate
класс.Таким образом, NSDate alloc
- это вызов метода класса alloc
. Это фактически унаследовано от NSObject
и действует для создания достаточного хранилища для нового экземпляра NSDate
, а затем возвращает его для использования в качестве экземпляра.
(instance) init
- вызов метода экземпляра init
. До вызова init
экземпляр, который вы получили, не может быть в правильном состоянии. Вызов init
или соответствующий инициализатор дает экземпляру возможность установить себя.
NSDate
также выбирает метод класса date
. Это делает то же самое, что и [[[NSDate alloc] init] autorelease]
, и предоставляется в виде простой стенографии.
Как и другие плакаты, существует смысловая разница здесь - alloc
возвращает ссылку на владение. Таким образом, ответственность за звонящего составляет release
. date
возвращает ссылку без права собственности. Таким образом, у абонента нет обязанностей. Однако современный компилятор ARC будет заниматься выпуском вещей для вас. Таким образом, есть разница, но не та, которая оказывает на вас реальное влияние.
Если ваш учебник настаивает на том, что date
более подходит, либо он был написан до компилятора ARC, либо был написан кем-то, кто предпочитает использовать старые соглашения; используя date
, традиционно сообщал бы, что вещь, которую вы создавали, использовалась для временного использования, поэтому, возможно, какая-то дополнительная ценность в одном направлении для другого опытного разработчика.
Спасибо, Джош. Торопился. –
Несомненно, @Seamus. –