iOS Unterschied zwischen isKindOfClass und isMemberOfClass
Was ist der Unterschied zwischen den isKindOfClass:(Class)aClass
und die isMemberOfClass:(Class)aClass
Funktionen?
Ich weiß, es ist etwas klein wie man ist global, während die andere ist eine exakte Klasse Spiel, aber ich brauche jemanden, um anzugeben, welche ist die bitte.
Swift isKind(of aClass: AnyClass)
und isMember(of aClass: AnyClass)
.
Du musst angemeldet sein, um einen Kommentar abzugeben.
isKindOfClass:
zurückYES
wenn der Empfänger ist eine Instanz der angegebenen Klasse oder eine Instanz einer Klasse, die erbt aus der angegebenen Klasse.isMemberOfClass:
zurückYES
wenn, und nur dann, wenn der Empfänger ist eine Instanz der angegebenen Klasse.Meisten der Zeit, die Sie verwenden möchten
isKindOfClass:
um sicherzustellen, dass Ihr code funktioniert auch mit Unterklassen.Den NSObject-Protokoll-Referenz erzählt ein wenig mehr über diese Methoden.
isKindOfClass:
zeigt an, ob ein Objekt erbt aus einer bestimmten KlasseisMemberOfClass:
zeigt an, ob ein Objekt ist eine Instanz von einer bestimmten Klasse.Angenommen
dann
Grundsätzlich
-isMemberOfClass:
ist true, wenn die Instanz ist genau der angegebenen Klasse, während-isKindOfClass:
ist true, wenn die Instanz ist genau der angegeben Klasse ist oder wenn eine die Instanz, die Vorfahren der angegebenen Klasse.-isMemberOfClass:
selten verwendet.isKindOfClass-> return JA, wenn die Objekt-Instanz dieser Klasse oder Instanz einer Klasse, die geerbt von ihm.
isMemberOfClass: Rückkehr JA, wenn die Objekt-Instanz dieser Klasse, aber Nicht im Fall: Instanz einer Klasse, die geerbt von ihm.
Beispiel ist gut genug in jtbandes Antwort.
Wegen der Klasse Cluster, isMemberOfClass kann Ihnen eine Antwort geben, die Sie vielleicht nicht erwarten. In vielen Fällen wird Ihre beste Wahl sein dürfte -(BOOL)conformsToProtocol:(SEL)aSelector oder - (BOOL)conformsToProtocol:(Protocol*)aProtocol. I. e, es ist besser, testen Sie diese, wenn Sie beantworten können die Ihren Bedarf eher über die Prüfung der Klasse/Unterklasse.
Finden Sie unter apple-doc für NSObject-Klasse und Protokoll:
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