Me he estado preguntando por qué Apple usa tipos de datos en Core Foundation que se tipean como tipo de puntero mientras que en Cocoa no lo son.¿Por qué Apple anteriormente typedef tipos de referencia (puntero) pero ahora no?
Como ejemplo, haría referencia a un objeto UIColor como UIColor *
mientras que una referencia a un objeto CGColor sería CGColorRef
? O NSURL *
y CFURLRef
? ¿Por qué no usar siempre CGColor *
y CFURL *
? O, por el contrario, ¿por qué no hay tipos UIColorRef
o NSURLRef
, ya que nunca se accede a UIColor
o NSURL
directamente de todos modos?
O por ejemplo, ¿por qué es id
y no id *
, ya que en realidad se trata de un puntero y de hecho puede estar encasillado en void *
?
Específicamente, ¿hay alguna razón por la cual Apple tenía la costumbre de hacer esto en sus marcos anteriores, pero dejó de hacerlo en Cocoa? ¿Es simplemente una cuestión de estilo?
Cocoa (como NeXTStep) es en realidad anterior a Core Foundation. –
Ahh No me di cuenta de eso. Siempre supuse que era el más nuevo. –
Y en realidad, ahora que lo mencionas, me di cuenta de que era parte de NeXTStep, creo que estaba pensando en algo más nuevo como parte de los marcos de trabajo de Apple. –