[英]How do I test for class type in Objective-C?
我正在嘗試使用-isKindOfClass:
來測試類類型,但是當我將類類型存儲在變量中時它對我不起作用。
這是一個例子。 我錯過了什么?
@interface MyClass : NSObject
@end
@implementation MyClass
@end
Class classType = [MyClass class];
[classType isKindOfClass:[MyClass class]]; // returns NO
classType == [MyClass class]; // returns YES
問題是 MyClass 沒有從 MyClass 繼承。
當您將isKindOfClass
用作實例方法時,它會按照您期望的方式工作:
[[classType new] isKindOfClass:[MyClass class]]; // YES
但是當你將它用作類方法時,它會測試繼承:
[classType isKindOfClass:[NSObject class]]; // YES
如果您想知道classType
是否為[MyClass class]
,請使用==
,就像您正在做的那樣。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.