我有一个项目,用户可以在其中添加一些项目到TableView。我的此TableView的数据源是具有2个属性的对象NSString * nameOfItem 和NSNumber * numberOfItem 。是否有可能检查我的NSMutableArray,如果它包含字符串 @&#34; someString&#34; 作为属性 nameOfItem ,如果是,则更改< strong> numberOfItem +1?
更新
我尝试用for(... in ...)来做它但是当我的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];
}
我想创建一个新的,如果还没有在该列表中。 任何帮助表示赞赏。
答案 0 :(得分:1)
我不知道这样的事情,但您可以使用名称属性作为键来使用NSDictionary而不是NSArray。如果您不想这样做,您可以对数组进行排序并对元素进行二进制搜索。