互联网的尊敬长辈,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