2

JSON解析期间(使用 AFNetwork json getter 完成),我有这段代码:

if (![[data class] isKindOfClass:[NSDictionary class]]) {
    DLog(@"%@ was not kind of class NSDictionary",[data class]);
    return;
}

但是由于某些原因,这If句话变成了真的,函数返回:

> __NSCFDictionary was not kind of class NSDictionary

但不应该__NSCFDictionary是专门的一类NSDictionary吗?或者如果这是错误的验证方式,那我该怎么做?

更新 :

我试着把它转过来,像这样:

        if (![[NSDictionary class] isKindOfClass:[data class]]) {
            DLog(@"%@ was not kind of class NSDictionary",[data class]);
            return;
        }

仍然不起作用:

__NSCFDictionary 不是类 NSDictionary

4

1 回答 1

7

根据文档

isKindOfClass:
Returns a Boolean value that indicates whether the receiver is an instance of given class or an instance of any class that inherits from that class. (required)

您正在使用

[data class]

这将返回一个字符串..您必须仅使用对象/实例,即

if (![data isKindOfClass:[NSDictionary class]])
于 2013-01-24T11:38:20.767 回答