循环List移除内容---demo
1 for (int i=0; i<[group.members count]; ++i) { 2 EzPerson *person=[group.members objectAtIndex:i]; 3 if (person.selected&&person.recordId<0) { 4 [db executeUpdate:@"INSERT INTO ezgroupmembers(group_id,first,last,phoneNumber,phoneLabel) values(?,?,?,?,?)", 5 groupIdNum,person.first,person.last,person.phoneNumber,person.phoneAbLabel,nil]; 6 }else if(!person.selected&&person.recordId>0){ 7 [group.members removeObjectAtIndex:i]; //1 8 [db executeUpdate:@"delete from ezgroupmembers where id=?",[NSNumber numberWithInt:person.recordId]]; 9 --i; //2 10 } 11 }
for循环从i=0开始到list总数结束
当代码执行至1,list总数改变(移除多余项),这时需要改变i的值,以便正常循环处理
不然每次循环都要少一次处理list机会