我想檢查一個對象的類型。我怎樣才能做到這一點?iPhone如何檢查一個對象的類型?
該場景是我得到一個對象。如果該對象是A類型,則執行一些操作。如果它是B型,那麼做一些操作。目前對象的類型是C,它是A和B的父親。
我有兩個類AViewController
和BViewController
。我在UIViewController
中收到的對象。現在如何檢查對象是AViewController
還是BViewController
?
我想檢查一個對象的類型。我怎樣才能做到這一點?iPhone如何檢查一個對象的類型?
該場景是我得到一個對象。如果該對象是A類型,則執行一些操作。如果它是B型,那麼做一些操作。目前對象的類型是C,它是A和B的父親。
我有兩個類AViewController
和BViewController
。我在UIViewController
中收到的對象。現在如何檢查對象是AViewController
還是BViewController
?
if([some_object isKindOfClass:[A_Class_Name class]])
{
// do somthing
}
來自@Jasarien的帖子更具體。例如,比較一個對象是否是KindOfClass [UIView類]會返回你甚至所有的UIImageViews,UIImages,UIRoundRectButtons .....所以在這種情況下,「isMemberOfClass可能是更好的解決方案。 – 2013-06-20 09:08:43
NSObject上有一些方法可以讓你檢查類。
首先有-class
這將返回您的對象的類。這將返回AViewController或BViewController。
然後有兩種方法,-isKindofClass:
和isMemberOfClass:
。
-isKindOfClass:
將比較接收方和作爲參數傳入的類,並根據類是否是給定類的相同類型或子類來返回true或false。
-isMemberOfClass:
會比較傳遞作爲參數的類接收器和返回true或基於類是否是嚴格相同的類的給定類假。在Objective-C
一個更常見的圖案是檢查對象響應你有興趣的方法的實施例:
if ([object respondsToSelector:@selector(length)]) {
// Do something
}
if ([object conformsToProtocol:@protocol(NSObject)]) {
// Do something
}
的欺騙http://stackoverflow.com/questions/1144629/in目標-c-how-do-i-test-the-object-type – ennuikiller 2009-09-02 14:50:57