[英]Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSArrayM objectForKey:]: unrecognized selector sent to instance
I'm trying to alter the following array like this. 我正在尝试像这样更改以下数组。 Actual Response: 实际回应:
errFlag = 0;
errMsg = "Got Slot successfully.";
errNum = 128;
slots = (
{
date = "";
slot = (
{
booked = 1;
end = 1510822800;
"end_dt" = "09:00:00";
id = 5a02a0372279511b1c968a10;
locId = "";
radius = 1;
"slot_price" = 20;
start = 1510815600;
"start_dt" = "07:00:00";
}
);
}
);
The response I want it like... 我想要的回应就像...
{
"start_dt" = "07:00:00";
}
{
"start_dt" = "11:00:00";
}
{
"start_dt" = "14:00:00";
}
I Attempted this on following way but I ended up with an excemption. 我尝试按照以下方式进行尝试,但最终获得了豁免。
if (requestType == RequestTypeGetAllMetSlots)
{
// altering the response into an array
NSDictionary *slotResultsDict = response[@"slots"];
NSLog(@"Priniting timeSlotResponseDict%@",slotResultsDict);
timeSlotResponseArray = [[slotResultsDict objectForKey:@"slot"] valueForKey:@"start_dt"];
NSLog(@"Priniting timeSlotResponseArray%@",timeSlotResponseArray);
}
Following is the Exeception I got.. Please help me.. 以下是我得到的感受。.请帮助我..
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSArrayM objectForKey:]: unrecognized selector sent to instance
Crashing because response
is an array not dictionary. 由于response
是数组而不是字典而崩溃。 And slot
is also an array not dictionary. 而且slot
也是数组而不是字典。
Try this. 尝试这个。
NSArray *slots = response[@"slots"]
NSDictionary *slotResultsDict = [slots firstObject];
NSLog(@"Priniting timeSlotResponseDict%@",slotResultsDict);
NSDictionary *subSlot = [[slotResultsDict objectForKey:@"slot"] firstObject];
timeSlotResponseArray = [subSlot valueForKey:@"start_dt"];
NSLog(@"Priniting timeSlotResponseArray%@",timeSlotResponseArray);
Or in one line. 或一行。
NSString *startDate = [[[[response[@"slots"] firstObject] objectForKey:@"slot"] firstObject] objectForKey:@"start_dt"];
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.