小编And*_*tta的帖子

如何将 CodingKeys 用于符合 Codable 协议的枚举?

我有一个符合协议EmailVerificationStatus的关联类型的枚举:StringCodable

enum EmailVerificationStatus: String, Codable {
    case unverified
    case verified
}
Run Code Online (Sandbox Code Playgroud)

我正在使用的网络服务以大写 ( UNVERIFIED/ VERIFIED)发送这些案例。我如何使用CodingKeys枚举来映射这种差异?类似以下内容不起作用:

enum CodingKeys: String, CodingKey {
    case unverified = "UNVERIFIED"
    case verified = "VERIFIED"
}
Run Code Online (Sandbox Code Playgroud)

enums ios swift4 codable

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

viewWillTransition(to:with:) 在 iOS 13 上有一个奇怪的大小参数

viewWillTransition(to:with:)在以模态呈现的视图控制器(modalPresentationStyle显式设置为.fullScreen)中使用时,我在 iOS 13 上遇到了一个奇怪的问题。

视图层次结构如下:

  • UINavigationControllerUIViewControllerA
    • 礼物UINavigationControllerUIViewControllerBmodalPresentationStyle=.automatic
      • 礼物UIViewControllerC( modalPresentationStyle= .fullScreen)

视图层次结构

当我将设备 (iPhone 11 Pro) 从纵向旋转到横向时,size参数 (in UIViewControllerC) 打印出一个奇怪的值(414.0, 340.0). 当我旋转回纵向时,它(正确)打印(375.0, 812.0)(全屏尺寸)。

在使用 iOS 版本 < 13 的模拟器上,size参数正确打印(375.0, 812.0)为纵向/(812.0, 375.0)横向。

当我对两个演示文稿都使用 amodalPresentationStyle.fullScreen,一切都按预期工作(即使在 iOS 13 上)。

我认为这与新的工作表呈现行为有关。但我不确定这个错误的大小是否是一个错误,或者我还没有得到新的逻辑。

希望得到一些指导。提前致谢!

ios swift ios13

5
推荐指数
0
解决办法
339
查看次数

标签 统计

ios ×2

codable ×1

enums ×1

ios13 ×1

swift ×1

swift4 ×1