2

解析中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は一種のクラス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 に答える