我有一个来自json的nsdictionary,它响应:
({
email = "something@gmail.com";
name = "User1";
},
{
email = "something2@gmail.com";
name = "user2";
})
这是我在de .m文件中的代码:
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response{
NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse*) response;
int errorCode = httpResponse.statusCode;
NSString *fileMIMEType = [[httpResponse MIMEType] lowercaseString];
NSLog(@"response is %d, %@", errorCode, fileMIMEType);
}
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data{
//NSLog(@"data is %@", data);
NSString *myString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
//NSLog(@"string is %@", myString);
NSError *e = nil;
usersDictionary = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:&e];
NSLog(@"dictionary is %@", usersDictionary);
}
- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error {
// inform the user
NSLog(@"Connection failed! Error - %@ %@",
[error localizedDescription],
[[error userInfo] objectForKey:NSURLErrorFailingURLStringErrorKey]);
}
- (void)connectionDidFinishLoading:(NSURLConnection *)connection {
NombreUsuario = [[NSMutableArray alloc] initWithCapacity:[usersDictionary count]];
}
我用它来返回部分中的行数:
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
// Return the number of rows in the section.
return [usersDictionary count];
}
但我没有意识到如何将这对数据电子邮件,名称放入一个tableview,其中每个单元格必须显示名称的主标签和电子邮件的副标题。
提前致谢。
答案 0 :(得分:1)
我将回答我自己的问题,以便将来参考谁可能需要它。
首先,我必须将json响应存储在NSMutableArray而不是字典中。
由于我有一系列字典,我有两个级别的信息,我试图将其分解为新对象,但这不是正确的方法,因此访问第二级我必须导航到它:< / p>
cell.textLabel.text = [[NombreUsuario objectAtIndex:indexPath.row]objectForKey:@"name"];
使用[NombreUsuario objectAtIndex:indexPath.row],我访问第一级信息,然后使用objectForKey:@“name”,我获得与键“name”匹配的所有值。
对于细节标签文字是相同的:
cell.detailTextLabel.text = [[NombreUsuario objectAtIndex:indexPath.row]objectForKey:@"email"];
感谢大家的帮助。
答案 1 :(得分:0)
我不会为您编写代码,但您需要了解如何实现UITableViewDataSource。特别是,您要做的事情将在 - tableView:cellForRowAtIndexPath:方法中。互联网上有成千上万的好例子。