【发布时间】:2014-09-04 02:30:10
【问题描述】:
大家好,我想使用 iOS8 的新 APNs api 来处理通知操作。在这种方法中:
- (void)application:(UIApplication *)application
handleActionWithIdentifier:(NSString *)identifier
forRemoteNotification:(NSDictionary *)notification
completionHandler:(void (^)())completionHandler {
if ([identifier isEqualToString:@"ACCEPT_IDENTIFIER"]) {
[self handleAcceptActionWithNotification:notification];
}
else if([identifier isEqualToString:@"MAYBE_IDENTIFIER"]) {
[self handleMaybeActionWithNotification:notification];
}
else if ([identifier isEqualToString:@"REJECT_IDENTIFIER"]) {
[self handleRejectActionWithNotification:notification];
}
else if....blah blah blah..
}
在这种情况下,我以后可能不得不用 NSString 编写太多的 if-else 语句,并且我知道一些避免太多 if-else 语句的方法,例如使用 switch,但它不适用于 string 或 NSString案例。
有什么办法可以避免在这个字符串或者 NSString 的情况下写太多的 if-else 语句? 提前致谢。
【问题讨论】:
-
我认为你的做法是最干净的做法
-
我同意斯科特的观点。您可能会尝试创建一个数组或字典,其中包含可能的字符串列表和可能的操作列表(要调用的选择器),然后遍历该数组,但这可能是不必要的复杂化。
-
在其他语言(例如,C#)中,您可以使用
switch语句将字符串作为大小写(不仅仅是ints),但switch 语句只是一系列if/elses 幕后... -
你可以试试这个insobject.blogspot.in
标签: ios objective-c if-statement nsstring