Mi sono chiesto perché Apple utilizza i tipi di dati in Core Foundation che sono tipizzati in un tipo di puntatore mentre in Cocoa non lo sono.Perché Apple digitava in precedenza tipi di riferimento (puntatore) ma non ora?
Ad esempio, si farebbe riferimento a un oggetto UIColor come UIColor *
mentre un riferimento a un oggetto CGColor sarebbe CGColorRef
? O NSURL *
e CFURLRef
? Perché non usare sempre solo CGColor *
e CFURL *
? Oppure, al contrario, perché non esistono tipi UIColorRef
o NSURLRef
, dal momento che non si accede mai direttamente a UIColor
o NSURL
?
Oppure, ad esempio, perché è id
e non id *
, poiché in realtà è un puntatore e può essere tipizzato in void *
?
In particolare, c'è qualche ragione per cui Apple aveva l'abitudine di farlo nei vecchi framework, ma ha smesso di farlo in Cocoa? È semplicemente una questione di stile?
Cocoa (come NeXTStep) è in realtà più vecchio di Core Foundation. –
Ah, non me ne sono reso conto. Ho sempre pensato che fosse il più recente. –
E in realtà ora che ne parli, mi sono reso conto che faceva parte di NeXTStep, credo che stavo pensando più recente come parte dei framework di Apple. –