小编sar*_*ner的帖子

在 Swift 中使用枚举设计错误类型

也许我只是完全想多了,但我正在尝试使用枚举来处理来自我正在集成的 API 的错误。

从这个 API 的 swagger 文档中,我可以看到可以返回的所有可能的响应。我已经把这些写成一个BaseError枚举:

enum BaseError: Error {
    case badRequest // 400
    case unauthorized // 401
    case forbidden // 403
    case unhandledError // XXX
    ...
}
Run Code Online (Sandbox Code Playgroud)

现在在我的客户端是我的问题开始的地方。

我最初的希望是采用这个BaseError枚举并根据我所在的客户扩展/添加其他案例。

就像是:

enum ClientSpecificError: BaseError {
    case clientError
}
Run Code Online (Sandbox Code Playgroud)

这将允许我返回一个错误 ClientSpecificError.unauthorized


现在我知道这是不可能的,因为枚举不能继承其他枚举,但我对如何实现这一点缺少一些理解。

问题

有没有其他方法可以使用枚举来实现这一点?

这甚至是“最佳实践”吗?

error-handling enums ios swift associated-value

5
推荐指数
1
解决办法
806
查看次数

如何在 UITextView 中设置像块引用一样的文本格式

我试图熟悉自己CoreText,并开始制作自己的笔记应用程序。

我将正则表达式与我现在正在输入的文本框结合使用AttributedStrings,并试图从本质上模仿它的功能。StackOverflow

我有所有常见的东西,例如:

大胆的

斜体

标头

emphasis blocks

但我正在努力制作块引用/代码块。

像这样的东西,它会中断自己的行并创建一个框,无论文本有多长,该框都会到达边缘。

And it changes the background color
Run Code Online (Sandbox Code Playgroud)

严格使用 AttributedStrings 是否可以做到这一点?我见过一些注入 HTML / CSS 的旧示例,但我希望我可以使用一些特殊的NSAttributedStringKey组合来完成它。

uitextview nsattributedstring core-text ios swift

2
推荐指数
1
解决办法
1720
查看次数