我在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"]);


无论如何,电池在细胞中显示为空,但会在控制台中正确显示。

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

最佳答案

你宣布

NSMutableArray *localStop


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

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

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

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


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

10-02 01:04