我在尝试将对象从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
要容易得多。