Quelle est la différence entre isKindOfClass:(Class)aClass
les isMemberOfClass:(Class)aClass
fonctions et les fonctions? Je sais que c'est quelque chose de petit comme, l'un est global tandis que l'autre est une correspondance de classe exacte, mais j'ai besoin de quelqu'un pour spécifier lequel est lequel s'il vous plaît.
Dans Swift isKind(of aClass: AnyClass)
et isMember(of aClass: AnyClass)
.
la source
isKindOfClass:
indique si un objet hérite d'une classe donnéeisMemberOfClass:
indique si un objet est une instance d' une classe donnée.la source
Supposer
puis
Fondamentalement,
-isMemberOfClass:
est vrai si l'instance appartient exactement à la classe spécifiée, tandis que-isKindOfClass:
est vrai si l'instance appartient exactement à la classe spécifiée ou si l'un des ancêtres de l'instance appartient à la classe spécifiée.-isMemberOfClass:
est rarement utilisé.la source
la source
isKindOfClass-> return YES lorsque l'objet est une instance de cette classe ou une instance d'une classe qui en est héritée.
isMemberOfClass: retourne YES lorsque l'objet est une instance de cette classe mais Non en cas: instance d'une classe qui en est héritée.
exemple est assez bon dans la réponse jtbandes.
la source
En raison des clusters de classes, isMemberOfClass peut vous donner une réponse à laquelle vous ne vous attendez peut-être pas. Dans de nombreux cas, votre meilleur choix est plus susceptible d'être - (BOOL) conformsToProtocol: (SEL) aSelector ou - (BOOL) conformsToProtocol: (Protocol *) aProtocol. Par exemple, il est préférable de les tester si elles peuvent répondre à vos besoins plutôt que de tester la classe / sous-classe.
Consultez la documentation Apple pour la classe et le protocole NSObject:
http://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/NSObject_Class/Reference/Reference.html#//apple_ref/occ/cl/NSObject
http://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Protocols/NSObject_Protocol/Reference/NSObject.html#//apple_ref/occ/intf/NSObject
la source