【问题标题】:NSMutableArray addObjects - unrecognized-selectorNSMutableArray addObjects - 无法识别的选择器
【发布时间】:2011-06-29 10:52:34
【问题描述】:

这就是我初始化 NSMutablearray 的方式。我将 cityList 的内容复制到 cityArray 中。两者都是 NSMutableArray。仅供参考,我使用 extern 声明了“cityArray”。

cityArray = [[NSMutableArray alloc] init];

[cityArray addObjectsFromArray:cityList];

然后,在另一个类的其他方法中,我尝试将一个对象添加到“cityArray”中,这就是我的做法。但是在运行这行代码时,它总是崩溃。

NSString *allCities = @"All Cities";
[[cityArray valueForKey:@"cityName"] addObject:allCities];

这是来自控制台“[__NSArrayI addObject:]: unrecognized selector sent to instance 0x6292de0”。

但是如果我用 setvalue:forkey: 测试它,它可以工作,但这不是我想要的。我希望将新数据添加到列表底部。

【问题讨论】:

  • 为什么 [[cityArray valueForKey:@"cityName"] addObject:allCities]; ?您可以使用 [cityArray addObject:allCities];
  • 因为在 city 数组中还有 cityID 属性,我稍后会需要它..

标签: iphone nsmutablearray add unrecognized-selector


【解决方案1】:

NSArray 没有实现 valueForKey:。您想要NSDictionary 或使用objectAtIndex:

您的第二部分代码应为:

NSString *allCities = @"All Cities";
[cityArray addObject:allCities];

【讨论】:

  • NSMutableArray 也没有实现这个方法。
  • 那该怎么办呢?如何在这种数组中添加另一行?
  • 使用 addObject: 或使用 NSMutableDictionary。您还可以创建一个 City 类,您可以在其中存储您的 cityId 和名称,并将此类的实例存储在您的 MutableArray 中。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-22
  • 1970-01-01
相关资源
最近更新 更多