请我尝试将两个NSArray的内容放在两个NSMutableArray中,但它似乎不起作用:
NSMutableArray *newArrayTypeCarburant = [[NSMutableArray alloc]init];
NSMutableArray *newArrayNomStation = [[NSMutableArray alloc]init];
for(int i=0; i <[topStation.listeTypesDesCarburants count]; i++)
{
[newArrayTypeCarburant addObjectsFromArray: [topStation.listeTypesDesCarburants objectAtIndex:i]];
}
for(int i=0; i <[topStation.listeDesEnseignes count]; i++)
{
[newArrayNomStation addObjectsFromArray: [topStation.listeDesEnseignes objectAtIndex:i]];
}
topStation.listeDesEnseignes
和topStation.listeTypesDesCarburants
是在appdelegate类中声明的两个NSArray和全局变量。请提前帮忙))
修改 我试着说:
NSMutableArray *newArrayTypeCarburant = [[NSMutableArray alloc]init];
NSMutableArray *newArrayNomStation = [[NSMutableArray alloc]init];
for(int i=0; i <[topStation.listeTypesDesCarburants count]; i++)
{
[newArrayTypeCarburant addObject: [topStation.listeTypesDesCarburants objectAtIndex:i]];
}
for(int i=0; i <[topStation.listeDesEnseignes count]; i++)
{
[newArrayNomStation addObject: [topStation.listeDesEnseignes objectAtIndex:i]];
}
self.pickerArrayTypeCarburant = newArrayTypeCarburant;
self.pickerArrayNomStation = newArrayNomStation;
第一个选择器包含数组中的值,但是当我尝试单击第二个选择器时,抛出异常:
2011-05-04 15:10:06.631[1065:207] -[__NSCFDictionary isEqualToString:]: unrecognized selector sent to instance 0x6e389a0
2011-05-04 15:10:06.633[1065:207] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFDictionary isEqualToString:]: unrecognized selector sent to instance 0x6e389a0'
答案 0 :(得分:2)
您正在使用NSArray addObjectsFromArray:它将复制整个数组,但您为每个容器成员执行一次(以及不传递正确的类型,因为它需要NSArray引用并且您传递了单个元素)。而是尝试像这样复制数组并删除for循环:
[newArrayTypeCarburant addObjectsFromArray: topStation.listeTypesDesCarburants];
[newArrayNomStation addObjectsFromArray: topStation.listeDesEnseignes];
如果您仍然需要逐个浏览它们,请使用您拥有的代码,但将addObjectsFromArray:
更改为addObject:
:
for(int i=0; i <[topStation.listeTypesDesCarburants count]; i++)
{
// perhaps some predicate here...
[newArrayTypeCarburant addObject: [topStation.listeTypesDesCarburants objectAtIndex:i]];
}
答案 1 :(得分:1)
你可以使用arrayWithArray。
NSMutableArray *newArrayNomStation = [NSMutableArray arrayWithArray:topStation.listeDesEnseignes];