Мне было интересно, почему Apple использует типы данных в Core Foundation, которые typedef'd к типу указателя, в то время как в Cocoa это не так.
Например, вы бы ссылались на объект UIColor, например UIColor *
, а ссылка на объект CGColor была бы CGColorRef
? Или NSURL *
и CFURLRef
? Почему бы просто не использовать всегда CGColor *
и CFURL *
? Или, наоборот, почему нет типов UIColorRef
или NSURLRef
, поскольку вы никогда не обращаетесь к UIColor
или NSURL
напрямую?
Или, например, почему это id
, а не id *
, поскольку на самом деле это указатель и на самом деле его можно преобразовать в void *
?
В частности, есть ли какая-то причина, по которой Apple имела привычку делать это в своих старых фреймворках, но перестала делать это в Cocoa? Это просто вопрос стиля?