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

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将等于情况0,2等于情况1,以此类推.

Objective-c相关问答推荐

uipageviewcontroller 类在设置多个视图控制器时崩溃

检测时间格式是 12 小时还是 24 小时格式

XCTAssertEqual 错误:(3)不等于(3)

如果用户点击屏幕键盘,我如何关闭键盘?

go 掉 UISearchBar 下的 1px 边框

碰撞技术如何运作?

找不到名为ProjectName的目标

如何切换回已经加载的 UIViewController?

从 UIPageViewController 中移除视图控制器

为什么 NSOrderedSet 不继承自 NSSet?

首次提交应用内购买以供审核

iOS 设备作为 Web 服务器

iPhone:在 UITextField 上禁用 Auto-Cap/autocorrect 问题

在 32 位和 64 位架构上格式化 NS(U)Integer 时类型转换的替代方法?

仅在 UIView 顶部的圆角

添加/删除带有动画的 UITableViewCell?

在 UICollectionView 上重置滚动

在 UITableView 中更改复选标记的 colored颜色

如何配置我的应用程序 - 菜单项被禁用?

Xcode没有编译任何项目? 'clang 失败,退出代码 255'