iphone - 为什么 __NSCFDictionary 不是一种 NSDictionary 类

标签 iphone objective-c json nsdictionary

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

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

但由于某些原因,If语句变为true,函数返回:

> __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 was not kind of class NSDictionary

最佳答案

根据docs

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]])

关于iphone - 为什么 __NSCFDictionary 不是一种 NSDictionary 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14500229/

相关文章:

iphone - 采用 Equatable 协议(protocol)进行具有嵌套 Enum 值的 Enum

iphone - iOS用户界面

json - 无需在 Swift 中关闭应用程序即可重新加载已解析的 URL

ios - UIWebView 和 UIScrollView 如何管理 RGB 和十六进制颜色?

iphone - IOS 3 与 IOS 4 库的动态链接

iphone - POST 请求到 Objective-C 网站

javascript - 如何将 JSON 转换为 CSV 格式并存储在变量中

ruby-on-rails - 是否有内置的 Ruby 方法可以将查询字符串直接转换为 JSON 对象?

iOS UIView : setNeedLayout, setNeedDisplay、layoutSubViews 和 layoutIfNeeded

objective-c - 如何创建 NSInputStream 的子类?