Также не эксперт Objective-C. Вот мое лучшее предположение.
Оба эти типа кажутся указателями. Тем не менее, похоже, что разница в том, что первое (где вы используете alloc) назначает вас ответственным за связанную память.
Со вторым типом, если вы создаете экземпляр объекта, используете его, что угодно, а затем он выходит из области видимости, ОС, скорее всего, очистит его для вас. Однако с первым типом вы отвечаете за освобождение этой выделенной памяти обратно в ОС.
Я предполагаю, что в target-C встроен подсчет ссылок и управление памятью для определения того, когда на этот объект больше нет ссылок, но важная часть заключается в том, что этот объект должен сохраняться за рамками этого объявления. до тех пор, пока у вас еще есть ссылка.
Вы, вероятно, найдете много информации, прочитав этот пост: Указатели Objective-C?
Что касается общего определения «объекта» и «указателя»: оба эти типа являются указателями. Один отвечает за память, а другая ОС берет на себя ответственность за вас. Объект просто определяется как экземпляр класса. Указатель - это адрес памяти этого экземпляра.