2

[__NSCFString objectForKey:]JSON フィードを処理すると (AFNetworking JSON フレームワークを使用して) エラーが発生し、アプリケーションがクラッシュするという無数の問題がありました。

NSDictionary文字列は anが期待される場所を占めているため、これがなぜなのかはわかっています。

objectForKeyしかし、問題のオブジェクトが Dictionary であるかどうかをすばやく確認する関数のカテゴリまたはサブクラスを作成することはできないのでしょうか? 同じものを着ると素敵ObjectForKeyですNSArray

これにより、プロジェクトでこのような問題が再発するリスクが確実に減少します。

4

1 に答える 1

1

私は、いくつかの機能を持つことはそれほど難しくないと思います...

- (NSString*)stringForKey:(id)key;

あなたは次のようなことができます...

- (NSString*)stringForKey:(id)key
{
    id object = [self objectForKey:key];

    if ([object isKindOfClass:[NSString class]]) {
        return (NSString*)object;
    }

    return nil;
}

他のオブジェクト タイプにも同様のものを使用できます。

そうすれば、期待するオブジェクトのタイプまたは nil を常に受け​​取ることができます。

編集

実際、いくつかの検索を行った後。この関数は NSDictionary に既に存在すると思います。(jrturton さんに訂正。NSUserDefaults のみに存在します。)

于 2013-01-24T08:31:33.317 に答える