填充UITableView单元格iOS8

时间:2015-04-30 21:43:12

标签: ios uitableview

我在UITableView中遇到头发问题。我只是想从数组中挑出一个名字字段。我必须做一些愚蠢的事情,但我无法看到它。请任何想法..

NSMutableArray *localStop = [localArray objectAtIndex:indexPath.row];
NSLog(@"localStop: %@", localStop);


BOTH OF THESE RETURN NULL

cell.nameLabel.text = [[localArray objectAtIndex:indexPath.row] valueForKey:@"Name" ];

OR

cell.nameLabel.text = [localStop valueForKey:@"Name"];


    NSLog(@"localStop Name1: %@", cell.nameLabel.text);
    NSLog(@"localStop Name2: %@", [[localArray objectAtIndex:indexPath.row] valueForKey:@"Name"]);

然而,在电池中,LATTER显示为空,但在控制台中显示正确。

CONSOLE OUTPUT:

 localStop: {
    Lat = "38.928922";
    Lon = "-77.037531";
    Name = "MT PLEASANT ST NW + IRVING ST NW";
    Routes =     (
        42,
        43
    );
    StopID = 1002005;
}


localStop Name1: (null)
localStop Name2: MT PLEASANT ST NW + IRVING ST NW

2 个答案:

答案 0 :(得分:1)

你宣布了

NSMutableArray *localStop

作为数组,当您在数组上调用valueForKey时,它应返回NSArray。不是NSString。 (localArray是一个二维数组??)

我认为您应该将localStop声明为NSMutableDictionary 但当然我不能完全确定是否是这种情况,因为我不知道localArray中包含哪种数据。

但是,如果localArrayNSDictionary数组,那么我不知道为什么会返回NULL:

cell.nameLabel.text = [[localArray objectAtIndex:indexPath.row] valueForKey:@"Name"];

如果localArray是一个二维数组,那么很明显为什么会出现问题。您正在尝试设置一个UILabel的文本属性,NSString带有NSArray(仍然您不应该看到NULL但数组内容为字符串)我也很困惑:)

答案 1 :(得分:1)

当你从数组中取出数据时,你的问题可能在于valueForKey:

你需要根据数组中的数据类型告诉我们/ know / act。

通常,当涉及到单元格填充数组时,您会有自定义对象,因此我们的第一个示例是具有您显示的属性的自定义对象,例如

我们有一个学生对象,例如,有一个名字和一个年龄,你只需要:

Student *currentStudent = [localArray objectAtIndex:indexPath.row];
cell.nameLabel.text = currentStudent.name;
cell.ageLabel.text  = currentStudent.age.stringValue;

如果您的数组中有NSDictionary,那么它几乎是相同的,除了您从数组中提取NSDictionary并使用-objetForKey:方法检索不同的你需要的钥匙。

请务必记下the difference between objectForKey and valueForKey

您也可以跳过从数组创建对象的部分,并直接引用数组中的字符串,如下所示

为学生示例:

cell.nameLabel.text = [[localArray objectAtIndex:indexPath.row]name];

或字典:

cell.nameLabel.text = [[localArray objectAtIndex:indexPath.row]objectForKey:@"name"];

按照这些说明重新编写代码可以解决您的问题。如果没有,请提供有关阵列中的内容的更多信息,并在此发表评论以通知我:)

查看NSLog之后,看起来你的字典数组似乎很好(这很好),所以你必须使用objectForKey调整代码并将数组中的内容视为一个NSDictionary并且绝对不是NSMutablArray,正如NSWill所建议的那样(在评论中)