首页 > 解决方案 > 但在 Xcode 10.3 中失败但在 Xcode 11.3 中工作

问题描述

我有一段代码在 Xcode 11.3 中构建没有问题,但在 Xcode 10.3 中失败。我认为这是因为 Xcode 10.3 没有所需的编译器。该代码实现了在 Xcode 11.3 中不起作用但在 Xcode 10.3 中起作用的推送通知(与有关 - 这就是我想在 Xcode 10.3 中构建的原因)。我可以做些什么来构建 Xcode 10.3 吗?

用代码更新:

func signalRecipients(transaction: SDSAnyReadTransaction) -> [SignalRecipient] {
    e164sForIntersection.compactMap { e164Number in
        let address = SignalServiceAddress(phoneNumber: e164Number)
        return SignalRecipient.registeredRecipient(for: address, mustHaveDevices: true, transaction: transaction)
    }
}

在 Xcode 11.3 中没有错误。在 Xcode 10.3 中:“无法推断复杂的闭包返回类型;添加显式类型以消除歧义”

    var hasViewed: Bool { firstViewedTimestamp > 0 }

在 Xcode 11.3 中没有错误。在 Xcode 10.3 中:“预期返回 'Bool' 的函数中缺少返回”。

我认为这种行为是由于 Xcode 10.3 的编译器造成的。我可以以某种方式使用从 Xcode 11.3 到 Xcode 10.3 的编译器吗?

标签: iosswiftxcode

解决方案


错误消息告诉您需要了解的内容。

  • 第一个表达式对于 10.3 的类型干扰来说太复杂了,所以给它一些类型。就像 e164Number in -> 任何类型。

  • 第二个清楚地告诉您,您没有返回布尔表达式。看代码,不错,没有return语句。所以添加一个return语句。


推荐阅读