在自定义表视图控制器中的响应中加载数据时的异常错误IOS
做了一个自定义表视图控制器,其中调用viewDidLoad方法中的服务。该服务被调用一些参数,它是GET请求。响应即将细但它示出了一个异常错误此,终止应用程序由于未捕获的异常在自定义表视图控制器中的响应中加载数据时的异常错误IOS
“NSUnknownKeyException”,原因:“[< __NSCFString 0x60000036a140> valueForUndefinedKey:]:这个类不是关键值coding-符合关键数据。“
从服务我的回答是这
{"data":[{"id":"139559","first_name":"Shoaib Anwar","last_name":null,"address":null,"mobile":"03233008757","city":null,"date":"2017-08-10","date_of_birth":"1992-08-10"}]}.
应用程序崩溃的时候,我很困惑,为什么它显示此错误。
我的代码是这样的,
NSString *savedValue = [[NSUserDefaults standardUserDefaults]
stringForKey:@"number"];
NSString *[email protected]"My Url";
NSString *string3 = [url stringByAppendingString:savedValue];
NSString *lastArray = @"&type=json";
string3 = [string3 stringByAppendingString:lastArray];
NSLog(@"Mmm %@",savedValue);
NSLog(@"Mmm %@",string3);
NSString *targetUrl = [NSString stringWithFormat:@"%@",string3];
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
[request setHTTPMethod:@"GET"];
[request setURL:[NSURL URLWithString:targetUrl]];
[[[NSURLSession sharedSession] dataTaskWithRequest:request completionHandler:
^(NSData * _Nullable data,
NSURLResponse * _Nullable response,
NSError * _Nullable error) {
NSString *myString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"Data received: %@", myString);
NSDictionary *json = [NSJSONSerialization JSONObjectWithData:data
options:NSJSONReadingMutableContainers
error:nil];
NSString *value = json[@"data"];
_Ids = [NSMutableArray array];
for (NSDictionary * oneCustomer in value)
{
// Create a new Customer record
ViewProfile * newCustomer = [[ViewProfile alloc] init];
newCustomer.ids = [oneCustomer objectForKey:@"id"];
NSLog(@"ID: %@ ", newCustomer.ids);
newCustomer.fname = [oneCustomer objectForKey:@"first_name"];
NSLog(@"Fname: %@ ", newCustomer.fname);
newCustomer.lname = [oneCustomer objectForKey:@"last_name"];
NSLog(@"Lname: %@ ", newCustomer.lname);
newCustomer.address = [oneCustomer objectForKey:@"address"];
NSLog(@"Address: %@ ", newCustomer.address);
newCustomer.mobile = [oneCustomer objectForKey:@"mobile"];
NSLog(@"Mobile: %@ ", newCustomer.mobile);
newCustomer.city = [oneCustomer objectForKey:@"city"];
NSLog(@"City: %@ ", newCustomer.city);
newCustomer.date = [oneCustomer objectForKey:@"date"];
NSLog(@"Date: %@ ", newCustomer.date);
newCustomer.dob = [oneCustomer objectForKey:@"date_of_birth"];
NSLog(@"DOB: %@ ", newCustomer.dob);
// Add our new Customer record to our NSMutableArray
[_Ids addObject:newCustomer];
}
dispatch_async(dispatch_get_main_queue(), ^{
// This code will run once the JSON-loading section above has completed.
[self.tableView reloadData];
});
NSString *status=[myString valueForKey:@"data"];
NSLog(@"Status:%@",status);
}] resume];
您的回应是一个JSON字符串。
尝试将myString属性转换为NSData类型,然后传递给NSJsonSerialisation类。
NSData *jsonData = [myString dataUsingEncoding:NSUTF8StringEncoding];
NSDictionary *json = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableContainers error:nil];
希望这有助于:)
请尝试下面的代码并根据您的要求进行更新。
NSString *myString = @"{\"data\":[{\"id\":\"139559\",\"first_name\":\"Shoaib Anwar\",\"last_name\":null,\"address\":null,\"mobile\":\"03233008757\",\"city\":null,\"date\":\"2017-08-10\",\"date_of_birth\":\"1992-08-10\"}]}";
NSData *data = [myString dataUsingEncoding:NSUTF8StringEncoding];
NSDictionary *json = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil];
NSArray *value = json[@"data"];
for (NSDictionary * oneCustomer in value)
{
// Create a new Customer record
NSLog(@"ID: %@ ", [oneCustomer objectForKey:@"id"]);
NSLog(@"Fname: %@ ", [oneCustomer objectForKey:@"first_name"]);
}
崩溃问题的原因NSString *status=[myString valueForKey:@"data"];
谢谢,我得到了我的答案。:) @Neha Gupta – Oneeb
请分享一些代码。 –
检查它。 @NaumanMalik – Oneeb