如何使用Xcode自动完成枚举开关?

Art*_*caj 21 xcode enums ios

假设你有一个枚举:

typedef enum {
    Sunday,
    Monday,
    Tuesday,
    Wednesday,
    Thursday,
    Friday,
    Saturday
} DayOfWeek;
Run Code Online (Sandbox Code Playgroud)

在编写switch语句时,Xcode正试图帮助使用switch语句片段:

在此输入图像描述

然后:

在此输入图像描述

很棒,但我需要列出所有枚举:

DayOfWeek day = ...; // a day of week
switch (day) {
    case Sunday:
        break;
    case Monday:
        break;
    case Tuesday:
        break;
    case Wednesday:
        break;
    case Thursday:
        break;
    case Friday:
        break;
    case Saturday:
        break;
    default:
        break;
}
Run Code Online (Sandbox Code Playgroud)

不幸的是,必须手动完成:(是否有任何已知的片段填充所有案例?当然,我看到一些3岁的答案说这是不可能的,但也许从那时起发生了变化?有什么想法吗?

小智 22

看到你的问题,并决定构建一个完全相同的Xcode插件.

看看:https://github.com/stefanceriu/SCXcodeSwitchExpander

SCXcodeSwitchExpander


Joe*_*oey 16

简答:

使用Editor> Refactor>Add Missing Switch Cases

在此输入图像描述

方便的方式:

  1. 在Xcode中Preferences[command]+ 打开[,].
  2. 转到Key Bindings选项卡并设置命令的快捷方式Refactor > Add Missing Switch Cases. 在此输入图像描述
  3. 在编辑器中输入快捷方式.确保光标在switch字母上. 在此输入图像描述


Tim*_*Tim 5

不幸的是,Xcode开箱即用是不可能的.提交错误报告并选择请求增强选项.

https://bugreport.apple.com

实际上我最近自己做了这个,他们根据给定问题收到的重复数量来衡量错误/增强的严重性和重要性 - 因此无法搜索跟踪器的原因之一.

  • 不,但我只是提交一份错误报告,主体为"Duplicate of 9663422".让我们所有人都更轻松. (2认同)

tox*_*sun 5

在Xcode 10中执行以下操作

  1. 添加switch...case模板并设置您的枚举类型,而不是self让Xcode理解它应该自动完成

  1. 将光标移到单词中switch并转到menu > editor > refactor > expand switch cases

这就是您将得到的结果