Нет никакой разницы между этими двумя вещами.Звездочка обозначает указатель, но может иметь любые пробелы, которые вам нравятся с обеих сторон.Например, следующее также верно:
NSDate * theDate = [NSDate date];
Создатели Objective-C решили добавить объекты в C, оставив их всех в куче (то есть, это вещи, которые вы явно создаете и уничтожаете - неттакая вещь, как локальный объект в Objective-C) и ссылки на них через указатели.Указатели - это просто адреса памяти.Так что «NSDate *» не является NSDate, это просто запись того, где в памяти находится объект NSDate.Точно так же, как разница между адресом улицы и домом.
Примитивные операции (такие как сложение, умножение и т. Д.) Работают только с примитивными типами C, такими как int, short, float и т. Д. Технически указатели, которые вы сохраняетеОбъекты Objective-C являются примитивными типами, потому что у вас есть адрес, а не объект.Но они, как правило, не очень полезны.
Вы оперируете объектами, только отправляя им сообщения.Синтаксис в квадратных скобках означает «отправить это сообщение этому объекту».Что, когда вы только начинаете, достаточно похоже на вызов функции, чтобы просто думать об этом как об этом.Существует различие в том, что некоторые вещи C делают во время компиляции, Objective-C делает во время выполнения.Но вы можете просто поверить, что они уже сделаны.
Objective-C относительно не типизирован - вы объявляете указатели как имеющие определенный тип, но выполняемые над ними операции (т.е. отправка сообщений) действуютточно так же, независимо от типа.Вот почему тип 'id' (что означает любой объект) может существовать.Objective-C слабо типизирован в том смысле, что переменная типа id может иметь указатель на любой присвоенный ей объект.
На практике все объекты происходят от NSObject, поэтому часто бывает полезнее использовать NSObject * иявное приведение при смене типа.Это означает, что вы можете использовать то, что NSObject добавляет без предупреждений компилятора, включая подсчет ссылок в Objective-C, вещи для выяснения, может ли объект выполнить определенное сообщение и т. Д.