在NSMutableArray中搜索对象并更改该对象的值
问题描述:
我有项目,用户可以在TableView中添加一些项目。为此我的TableView的数据源与2个属性的NSString * nameOfItem和NSNumber的* numberOfItem对象。任何可能性,检查我的NSMutableArray如果它包含字符串@“someString”财产nameOfItem,如果是比变化numberOfItem +1?在NSMutableArray中搜索对象并更改该对象的值
UPDATE:
我尝试了做(... ...中),但是当我在我的NSMutableArray只有一个对象,它工作得。如果我有更多的东西都有它创建一个新的对象,并比变化值++旧之一:
下面是一些代码是我的尝试:
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
NSString*nameToCheck = [NSString stringWithFormat:@"%@", [self.ivc.objects objectAtIndex:indexPath.row]];
for (Items *itemNamed in self.ivc.shoppingList.items) {
if ([itemNamed.nameOfItem isEqualToString:nameToCheck]) {
[itemNamed setNumberOfItem:[NSNumber numberWithInt:[itemNamed.numberOfItem integerValue]+1.0]];
} else {
Items *item = [Items new];
[item setNameOfItem:name];
[item setNumberOfItem:@(1)];
[self.ivc.shoppingList.items insertObject:item atIndex:0];
}
我想创建只有在尚未列入该列表的情况下才有新的。 任何帮助表示赞赏。
答
我不知道这样的事情,但你可以使用NSDictionary而不是NSArray使用name属性作为键。如果你不想这样做,你可以对数组进行排序并对元素进行二进制搜索。
这段代码给你什么结果? – rdelmar 2014-09-05 15:23:16
@rdelmar,如果我只有一个对象在那shoppingList.items然后它改变numberOfItem值++ – Mayo323 2014-09-05 15:27:33
什么是shoppingList的结构?从你的文章中不清楚,为什么你要通过self.ivc.shoppingList.items迭代,而不是self.ivc.shoppingList。 – rdelmar 2014-09-05 15:35:45