我创建了一个自定义 Xcode 编辑器扩展,如果未满足某些条件,它可能无法运行。
具体来说,它是一个排序行命令,如果有多个选择,或者选择的行少于两行,它将拒绝运行。
我已经定义了一个符合错误的枚举来定义我的错误也符合 LocalizedError。
enum CommandError: Error, LocalizedError
{
case notEnoughLines
case tooManySelections
public var errorDescription: String?
{
switch self
{
case .notEnoughLines: return NSLocalizedString("Not enough lines to sort", comment: "notEnoughLines")
case .tooManySelections: return NSLocalizedString("Too many selections", comment: "tooManySelections")
}
}
}
在我的 perform(with:completionHandler:) 方法中,我使用适当的错误之一调用完成处理程序:
...
if invocation.buffer.selections.count > 1
{
completionHandler(CommandError.tooManySelections)
return
}
...
我期待显示错误的文本(“选择太多”)。相反,错误显示为:
操作无法完成。(Ext01.SortLinesCommand.CommandError 错误 1。)
我这样做是否不正确,或者这是 XcodeKit 或 Xcode 中的问题?