互聯網的尊敬長輩,Objective-C的正確使用的if/else
我試圖處理一系列詞典,不同的數據集將需要不同的處理,並且每個數據集需要處理創建,更新和刪除操作。很簡單,我在尋找這樣做的更有效的/聰明的辦法...
- (NSDictionary*)processUpdatesForDataSet:(NSString*)dataSet ofType:(NSString*)type {
if ([dataSet isEqualToString:@"countries"]) {
if ([type isEqualToString:@"CREATE"]) {
} else if ([type isEqualToString:@"UPDATE"]) {
} else if ([type isEqualToString:@"DELETE"]) {
}
} else if ([dataSet isEqualToString:@"connections"]) {
if ([type isEqualToString:@"CREATE"]) {
} else if ([type isEqualToString:@"UPDATE"]) {
} else if ([type isEqualToString:@"DELETE"]) {
}
} else if ([dataSet isEqualToString:@"sites"]) {
if ([type isEqualToString:@"CREATE"]) {
} else if ([type isEqualToString:@"UPDATE"]) {
} else if ([type isEqualToString:@"DELETE"]) {
}
}
}
是否每個dataSet類型的創建,更新和刪除代碼都不同?如果是這樣,你可能想看看你的數據模型。如果沒有,你可能想看看每種類型的公共處理程序,而不是每個數據集。 – Kalle
這實際上並不是插入代碼,這是在此之前的一個步驟,但是對於每個dataSet類型,進程都會有所不同。不幸的是,我用來提取這些數據的API不會以數據模型的正確格式返回,所以我需要將其轉換。數據模型無法更改:( – Sammio2
...如果這是您的目標(和您的問題),我必須告訴您所提供的「if ... else」語句是正確的。我可以製作更復雜的動態解決方案類似的問題與'NSDictionary'對象和'塊',但我不太確定現在是否有必要。 – holex