java - Swift 中的高级 Java 枚举

标签 java ios swift enums

我有许多 Java 类需要转换为 Swift 代码。 其中一个类有一个高级枚举:

public enum Student {

  STUDENT_ONE("Steve", "Jobs")
  STUDENT_TWO("Tim", "Cook")

  private String _firstName;
  private String _lastName;
}

如何在 Swift 中复制相同的行为?

最佳答案

经过一番思考,我同意 godmoney 的观点,即 aksh1t 的解决方案比我使用字符串的解决方案更好。

无论如何,这是 aksh1t 解决方案的一个更简洁的变体,它只使用一个返回元组的计算属性:(在 Swift 2.0 中测试)

enum Student {
    case STUDENT_ONE, STUDENT_TWO

    typealias Details = (firstName: String, lastName: String)
    var details : Details {
        switch(self) {
        case STUDENT_ONE : return ("Steve", "Jobs")
        case STUDENT_TWO : return ("Tim", "Cook")
        }
    }
}

// Usage:
func test(sd: Student.Details) {
    print(sd.firstName)
    print(sd.lastName)
}
test(Student.STUDENT_ONE.details)

关于java - Swift 中的高级 Java 枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31157093/

相关文章:

ios - 在 viewWillDisappear 中将 FetchedResultsController 设置为 nil 后出现错误

java - 设置 JAVA_HOME ubuntu : path not found

java - IntBuffer(和其他原始类型缓冲区)的工厂方法返回实例,但这些类实际上是抽象定义的

iphone - Objective-C DRY JSON 映射和对象创建

android - Flutter:禁用平板电脑和 iPad 的应用程序

ios - 访问在 UITableView 上不可见的单元格

ios - 应用程序崩溃 "libc++abi.dylib: terminating with uncaught exception of type NSException (lldb)"

java - 执行 Lucene 通配符搜索

java - 如何在 swing 中制作类似 youtube 的视频列表

ios - 如何验证收据(应用内购买)?