比较类给出了错误的输出

时间:2015-10-07 08:36:23

标签: ios objective-c compare

我使用下面的代码检查视图控制器。

NSLog(@"addProductClicked 1===%@", self.class);

NSLog(@"addProductClicked 2===%@", [CategoriesViewController class]);

if ([self.class isKindOfClass:[CategoriesViewController class]]) {

    NSLog(@"you go it right");

} else {
    NSLog(@"you go it wrong");
}

我得到的输出如下。

addProductClicked 1===CategoriesViewController
addProductClicked 2===CategoriesViewController

you go it wrong

知道出了什么问题吗?

只是为了更新,下面是我定义了我的视图控制器......

@interface CategoriesViewController : GlobalViewController {

现在在GlobalViewController我有上面检查的方法......

2 个答案:

答案 0 :(得分:1)

这是错误的比较。您在该类的对象上调用isKindOfClass:。像这样:

CategoriesViewController *obj = [[CategoriesViewController alloc] init];
[obj isKindOfClass:CategoriesViewController];

在您的情况下,您可能需要检查self

答案 1 :(得分:1)

要进行类检查的变量应作为对象传入,而不是作为类传递。

if ([self isKindOfClass:[CategoriesViewController class]]) {
    NSLog(@"you go it right");
} else {
    NSLog(@"you go it wrong");
}