1

オブジェクトをからにロードしようとして問題が発生しNSDictionaryましたNSMutableDictionary-コードは次のとおりです:

dictListData = [[NSMutableDictionary alloc] initWithCapacity:200];

..。

NSError *jsonError = nil;
NSDictionary *jsonResultDict = [NSJSONSerialization JSONObjectWithData:[httpRequestCopy responseData] options:kNilOptions error:&jsonError];
NSDictionary *tempDataset = [[jsonResultDict objectForKey:@"result"] objectAtIndex:0]; 

NSLog(@"tempDataset = %@", tempDataset);

[dictListData addEntriesFromDictionary:tempDataset];   // <-- Error here

このNSLogコマンドはデータを辞書形式で出力するので、データがそこにあることがわかりますが、addEntriesFromDictionaryコマンドは次のエラーで失敗します。

'NSInvalidArgumentException' [NSMutableDictionary addEntriesFromDictionary:]: dictionary argument is not an NSDictionary'.

tempDatasetを型キャストしてみましたが、違いはありませんでした。何か案は?

Xcode 4.3.2を使用しており、iOS SDK 5.1をターゲットにしており、ARCが有効になっています。

jsonResultDict = {
    result =     (
                (
                        {
                stCode = 000477065;
                stDesc1 = "TIMER KNOB";
                stQtyFree = 0;
                stQtyInStock = 0;
            },
                        {
                stCode = 0010311;
                stDesc1 = "DBLE TAPER CHUCK CAP";
                stQtyFree = 10;
                stQtyInStock = 10;
            },
                        {
                stCode = "0016-103";
                stDesc1 = "1/8 I.D";
                stQtyFree = 0;
                stQtyInStock = 0;
            },
                        {
                stCode = "0016-104";
                stDesc1 = "1/4 I.D";
                stQtyFree = 0;
                stQtyInStock = 0;
            },
                        {
                stCode = "0016-157";
                stDesc1 = "1/8 x 1/16 X 1/8 TEE";
                stQtyFree = 0;
                stQtyInStock = 0;
            }
        )
    );
}
4

2 に答える 2

2

クラスのようtempDatasetです。NSArray

于 2012-04-13T13:23:00.930 に答える
0

NSArrayクラスであるというFlinkの答えは正しいはずです。NSDictionaryまた、本当にをに変換する必要がある場合はNSMutableDictionary、はるかに使いやすくなりますmyDictionary.mutableCopy

于 2012-04-13T13:31:16.633 に答える