这是我的回答......我的名字是“msg”
{
Result = {
Data = {
engine = {
service = {
data = (
{
checked = 1;
field = 1;
name = Ettersyn;
},
{
checked = 1;
field = 1;
name = "Med Alpha VP";
},
{
checked = 0;
field = 0;
name = "Med B.IMP.";
}
);
"engine_service_id" = 1;
"engine_service_name" = "4 Cyl";
};
type = {
"engine_id" = 1;
"engine_name" = Benzin;
};
};
tact = {
service = {
data = (
{
checked = 0;
field = 1;
name = "Little ettersyn";
},
{
checked = 0;
field = 1;
name = "Short ettersyn";
}
);
"tact_service_id" = 2;
"tact_service_name" = "21-50 hk";
};
type = {
"tact_id" = 1;
"tact_name" = "2 Takt";
};
};
};
status = success;
};
}
我尝试存储像这样的数据
var arrayMain : NSMutableArray = msg.valueForKey("Result")?.valueForKey("Data") as NSMutableArray
我的问题是我在运行时出现“EXC_BAD_ACCESS”错误...我也检查数组的分配...我尝试将它存储在NSMutableDictionary中,它的工作完美...我如何将此响应存储在NSMutableArray中?
答案 0 :(得分:0)
如果仔细查看响应数据结构,您将看到问题。
第一个操作:msg.valueForKey("Result")
将返回一个包含两个键/值的字典; “数据”字典和“状态”字符串。
您的第二个操作.valueForKey("Data")
会返回一个包含两个键/值的字典;一个“引擎和”策略“字典。
因为它是一本字典,你可以用它来创建一个字典,这就是你所说的工作,或者你将不得不重新考虑你想要存储的方式,如果你确实想要它在数组中,但你可以不直接从字典创建数组 - 它们是不同的数据结构。
答案 1 :(得分:0)
您不能将Dictionary对象分配给Array,这就是它给出错误的原因。
但您可以将该字典存储为数组:
var arrayMain : NSMutableArray = NSMutableArray()
arrayMain.addObject(msg.valueForKey("Result")?.valueForKey("Data"))