У меня есть цикл, и если условия следующим образом,не может сломаться, если условие в Objective C
for (snapshot in snapshot.children)
{
if([entirePlBtnChecked isEqual: @"Yes"]){
if([snapshot.value[@"leaseType"] intValue] == 2){
[self.allSnapshot addObject:snapshot];
}
}
if([hdbApartmntChecked isEqual: @"Yes"]){
if([snapshot.value[@"housingType"] intValue] == 0){
[self.allSnapshot addObject:snapshot];
}
}
if([condominiumBtnChecked isEqual:@"Yes"]){
if([snapshot.value[@"housingType"] intValue] == 1){
[self.allSnapshot addObject:snapshot];
}
}
if([landedHouseBtnChecked isEqual:@"Yes"]){
if([snapshot.value[@"housingType"] intValue] == 2){
[self.allSnapshot addObject:snapshot];
}
}
if([commonRoomBtnChecked isEqual:@"Yes"]){
if([snapshot.value[@"leaseType"] intValue] == 0){
[self.allSnapshot addObject:snapshot];
}
}
if([masterRoomBtnChecked isEqual:@"Yes"]){
if([snapshot.value[@"leaseType"] intValue] == 1){
[self.allSnapshot addObject:snapshot];
}
}
if([entirePlaceChecked isEqual:@"Yes"]){
if([snapshot.value[@"leaseType"] intValue] == 2){
[self.allSnapshot addObject:snapshot];
}
}
}
NSLog(@"%lu",(unsigned long)[self.allSnapshot count]);
NSLog(@"%@",self.allSnapshot);
при печати массив тот же объект повторяется дважды в массиве. Я хочу разбить условие if, если значение моментального снимка равно указанному значению во втором, если условие сначала, если условие. Что касается примера, если [snapshot.value [@ "leaseType"] intValue] == 2 истинно, тогда это должно перейти к следующему снимку, а не к следующему условию. Но когда я делаю это выше, он проверяет следующий блок условий, даже если первый блок условий if равен true. Поэтому я получаю один и тот же объект повторно. Я попробовал следующее:
for (snapshot in snapshot.children)
{
if([entirePlBtnChecked isEqual: @"Yes"]){
if([snapshot.value[@"leaseType"] intValue] == 2){
[self.allSnapshot addObject:snapshot];
break;
}
}
if([hdbApartmntChecked isEqual: @"Yes"]){
if([snapshot.value[@"housingType"] intValue] == 0){
[self.allSnapshot addObject:snapshot];
break;
}
}
if([condominiumBtnChecked isEqual:@"Yes"]){
if([snapshot.value[@"housingType"] intValue] == 1){
[self.allSnapshot addObject:snapshot];
break;
}
}
if([landedHouseBtnChecked isEqual:@"Yes"]){
if([snapshot.value[@"housingType"] intValue] == 2){
[self.allSnapshot addObject:snapshot];
break;
}
}
if([commonRoomBtnChecked isEqual:@"Yes"]){
if([snapshot.value[@"leaseType"] intValue] == 0){
[self.allSnapshot addObject:snapshot];
break;
}
}
if([masterRoomBtnChecked isEqual:@"Yes"]){
if([snapshot.value[@"leaseType"] intValue] == 1){
[self.allSnapshot addObject:snapshot];
break;
}
}
if([entirePlaceChecked isEqual:@"Yes"]){
if([snapshot.value[@"leaseType"] intValue] == 2){
[self.allSnapshot addObject:snapshot];
break;
}
}
}
Это отрыв от первого условия и не переход ко второму условию, даже если первый из них не работает. Я получаю подсчет массива как 1, где я должен получать 2.
Можете ли вы показать это с помощью моего кода? – shamila
@ S.Sallay просто измените 'break;' на 'continue;' – Joshua