0

我有一个来自 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];
}

但是我不知道如何将这对数据 email,name 放入 tableview 中,其中每个单元格都必须显示名称的主标签和电子邮件的副标题。

提前致谢。

4

2 回答 2

1

我将回答我自己的问题,以供将来可能需要它的人参考。

首先,我必须将 json 响应存储在 NSMutableArray 而不是字典中。

由于我有一系列字典,因此我有两个级别的信息,我试图将其分解为新对象,但这不是正确的方法,因此要访问第二级,我必须导航到它:

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"];

谢谢大家的帮助。

于 2013-10-20T07:43:11.543 回答
0

我不会为您编写代码,但您需要了解如何实现UITableViewDataSource。特别是,您要执行的操作将在 - tableView:cellForRowAtIndexPath: 方法中。互联网上有数以千计的好例子供您参考。

于 2013-10-19T13:55:46.977 回答