0

UITableViewCell使用 NSMutableArray设置时出现问题。

-[__NSCFArray isEqualToString:]: unrecognized selector sent to instance

在那一行:

cellDetailed.favouriteLabel.text=[arrayofFavouriteNames objectAtIndex:indexPath.row];

当 NSLogging NSMutableArray 时,我有这个:

favourites: (
        (
        "User1"
    ),
        (
        User2
    )
)

NSMutableArray 的结构是这样的吗:

favourites: (
"a",
"b",
"c"
)

当添加一个值作为收藏夹时,我首先拥有旧的收藏夹:

arrayofFavouritesNames = [NSMutableArray arrayWithArray:[[NSUserDefaults standardUserDefaults] objectForKey:@"favourites_names"]];

然后,将新值添加到 NSMutableArray:

[arrayofFavouritesNames addObject:name];

然后设置更新的 NSMutableArray:

[[NSUserDefaults standardUserDefaults] setObject:arrayofFavouritesTeamsNames forKey:@"favourites_names"];

我真的不知道为什么会出现这个错误UITableViewCell,但我猜它与 NSMutableArray 的结构有关。

感谢您的帮助。

4

2 回答 2

3

您的调试输出显示了一个字符串数组。也就是说:

  • 您的顶级对象 ( arrayofFavouritesNames) 是一个数组。
  • 顶级数组的每个元素都是一个数组。
  • 每个二级数组的每个元素都是一个字符串。

所以你设置name为一个数组,而不是一个字符串。在将其添加到之前将其设置为字符串arrayofFavouritesNames

如果您需要更多帮助,请编辑您的问题,向我们展示您是如何设置name.

于 2013-08-15T04:24:02.770 回答
2

为了获得价值,您需要编写

NSLog (@"%@", [[arrayofFavouritesNames objectAtIndexPath:0] objectAtIndexPath:0]);

如果您从数组中获取所有值,则使用for loop 此类,

for(int i = 0 ; i < arrayofFavouritesNames.count ; i++)
{
  NSLog (@"%@", [[arrayofFavouritesNames objectAtIndexPath:i] objectAtIndexPath:i]);
}
于 2013-08-15T04:29:53.460 回答