objective-c - Objective-C 可以打开 NSString 吗?

有没有更聪明的方法来重写这个?

if ([cardName isEqualToString:@"Six"]) {
    [self setValue:6];
} else if ([cardName isEqualToString:@"Seven"]) {
    [self setValue:7];
} else if ([cardName isEqualToString:@"Eight"]) {
    [self setValue:8];
} else if ([cardName isEqualToString:@"Nine"]) {
    [self setValue:9];
} 

最佳答案

不幸的是,他们不能。这是 switch 语句的最佳和最受追捧的用法之一,因此希望它们能够加入(现在)Java(和其他)潮流!

如果您正在使用卡片名称,也许可以为每个卡片对象分配一个整数值并打开它。或者可能是一个枚举,它被视为一个数字,因此可以打开。

例如

typedef enum{
  Ace, Two, Three, Four, Five ... Jack, Queen, King

} CardType;

这样做,Ace 等于 case 0,2 等于 case 1,等等。

https://stackoverflow.com/questions/8161737/

相关文章:

ios - 在 iOS 6 中以编程方式打开 map 应用

objective-c - 如何摆脱 'undeclared selector' 警告

ios - UIButton 标题文本颜色

ios - 获取 UIScrollView 滚动到顶部

objective-c - 当前位置权限对话框消失得太快

objective-c - 在 Objective-C 中,我为什么要检查 self = [supe

objective-c - NSInvalidUnarchiveOperationException

objective-c - 如何判断 UITableView 何时完成 ReloadData?

ios - 带有隐藏 UIView 的自动布局?

ios - 从另一个应用程序打开设置应用程序