Les classes ne sont pas conformes aux classes, elles sont conformes à protocols, qui sont essentiellement des listes de messages auxquels une classe peut répondre. Si une classe est conforme à un protocole, elle doit répondre à tous les messages non facultatifs répertoriés dans l'interface de protocole.
De même, il n'y a pas vraiment de différence entre une classe Cocoa et une classe Objective-C. Cocoa est un framework Objective-C, donc toutes ses classes sont des classes Objective-C. Si vous demandez si des classes comme UIView font partie du langage ou du framework: Toutes les classes avec lesquelles vous interagissez normalement dans une application Cocoa/Cocoa Touch proviennent du framework. Les classes natives du moteur d'exécution norme Objective-C offre sont:
Vous pouvez aller à/usr/include/objc si vous voulez voir les en-têtes pour toi. Aucun d'entre eux n'est utilisé dans un programme Cocoa ou Cocoa Touch normal. Vous utilisez des protocoles (comme mentionné ci-dessus), mais ne vous référez pas directement à la classe directement.
J'ai vu des choses conformes à NSObject. N'est-ce pas un objet et non un prototype? –
@awakeFromNib: C'est les deux. Il existe une classe NSObject et un protocole nommé NSObject auquel la classe est conforme. Classe: http://developer.apple.com/mac/library/documentation/Cocoa/Reference/Foundation/Classes/NSObject_Class/Reference/Reference.html Protocole: http://developer.apple.com/mac/library/documentation /Cocoa/Reference/Foundation/Protocols/NSObject_Protocol/Reference/NSObject.html#//apple_ref/occ/intf/NSObject – Chuck
Que signifie "Liste"? ne peut pas le trouver dans mon runtime – user102008