2

何かを投稿した後、NSJsonSerialization を使用して json の戻り値を取得しています。正しいリターンを返すか、次のようになります。

{
"status":"false"
}

解析を試みる前に、返品が返されたかどうかを確認する必要があります (要求したキーが存在しないとクラッシュするため)。

[whatever objectForKey:@"status"] == nil

nil の場合は問題ありませんが、存在しない場合はクラッシュします (別のリターンを取得したため)。

私が得るクラッシュはこれです.NSJSONSerialzationがNSArrayをNSdictionaryとして返しているようです?:

2012-07-02 11:03:40.426 [9412:10703] -[__NSArrayM objectForKey:]: unrecognized selector sent to instance 0x75f03f0
2012-07-02 11:03:40.429 [9412:10703] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSArrayM objectForKey:]: unrecognized selector sent to instance 0x75f03f0'

それに応じて行動できるように、どのリターンを得たかを知る方法を見つける必要があります。

4

1 に答える 1

5

whatever変数の種類を確認できます

if([whatever isKindOfClass:[NSDictionary class]])
    //then check for nil
else
    //Then its not a dictionary then in your case its empty
于 2012-07-02T15:22:34.707 に答える