Objective-C - 将 NSDictionary 中的项目添加到 NSMutableDictionary



我在尝试将对象从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'.

我尝试对临时数据集进行类型转换,但没有区别。 有什么想法吗?

我使用的是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;
            }
        )
    );
}

看来tempDataset是一个NSArray类。

Flink的回答是NSArray类应该是正确的。 另外,如果您确实需要将NSDictionary转换为NSMutableDictionary,则使用myDictionary.mutableCopy要容易得多。

最新更新