簡體   English   中英

如何在 Objective-C 中測試類類型?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM