Почему раньше Apple использовала typedef для ссылок (указателей), а не сейчас?

Мне было интересно, почему Apple использует типы данных в Core Foundation, которые typedef'd к типу указателя, в то время как в Cocoa это не так.

Например, вы бы ссылались на объект UIColor, например UIColor *, а ссылка на объект CGColor была бы CGColorRef? Или NSURL *и CFURLRef? Почему бы просто не использовать всегда CGColor *и CFURL *? Или, наоборот, почему нет типов UIColorRefили NSURLRef, поскольку вы никогда не обращаетесь к UIColorили NSURLнапрямую?

Или, например, почему это id, а не id *, поскольку на самом деле это указатель и на самом деле его можно преобразовать в void *?

В частности, есть ли какая-то причина, по которой Apple имела привычку делать это в своих старых фреймворках, но перестала делать это в Cocoa? Это просто вопрос стиля?

7
задан Ben Baron 17 March 2012 в 20:46
поделиться