【问题标题】:Missing return in a function expected to return 'String' (answer not found)预期返回“字符串”的函数中缺少返回(未找到答案)
【发布时间】:2018-07-19 16:49:11
【问题描述】:

这是代码

import Foundation
import ARKit

extension ARCamera.TrackingState {
    var presentationString: String {
        switch self {
        case .notAvailable:
            return "TRACKING UNAVAILABLE"
        case .normal:
            return "TRACKING NORMAL"
        case .limited(let reason):
            switch reason {
            case .excessiveMotion:
                return "TRACKING LIMITED\nToo much camera movement"
            case .insufficientFeatures:
                return "TRACKING LIMITED\nNot enough surface detail"
            case .initializing:
                return "INITIALIZING"
            case .relocalizing:
                return "RELOCALIZING"
            }
        }
    }
}

我在倒数第二行收到一条错误消息:

预期返回“字符串”的函数中缺少返回

如果我添加:

return "String"

我收到一条错误消息:

一行上的连续声明必须用“;”和“预期声明”分隔

我尝试在这段代码中返回一个字符串,但没有任何效果。

【问题讨论】:

标签: swift


【解决方案1】:

您应该在每个 switch 语句中添加一个default,以防其他条件都不满足。

switch self {
    case .notAvailable:
        return "TRACKING UNAVAILABLE"
    case .normal:
        return "TRACKING NORMAL"
    case .limited(let reason):
        // Do something
    default:
        // You can edit the string to return in this case (could be some error message)
        return ""
}

【讨论】:

  • 在第二个 switch 语句中放置“default: return ''” 就可以解决问题 - 加上错误消息......当我没有改变任何东西解决了这个问题时就消失了。非常感谢!
  • 太棒了!如果对您有帮助,请随时接受答案:)
猜你喜欢
  • 2013-04-02
  • 1970-01-01
  • 2019-05-14
  • 2018-07-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-08
相关资源
最近更新 更多