0
條件我有一個for循環,並且如果條件如下,不能打破如果在目標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條件塊爲真,它也會檢查下一個if條件塊。所以我重複得到同一個對象。我試過下面,
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