2

由于 UIDevice 在 watchOS 上不可用,我想知道如何检测哪个设备用于监视在两个操作系统(iOS 和 WatchOS)上执行的库中的特定代码执行。我们可以使用 watch_os 中的特定类并查看它是否可用,但只是想知道除了该技术之外是否还有其他东西。在这种情况下使用哪个类是安全的?

4

1 回答 1

0

当您使用 Swift 并且您的库类之一称为 MyClass 时。

将其编译到您的 iOS 目标中:

extension MyClass {
    func isWatch() -> Bool {
        return false
    }
}

将其编译到您的监视目标中:

extension MyClass {
    func isWatch() -> Bool {
        return true
    }
}

现在您有了一个在所有目标中都可用并返回不同值的函数。

该函数在每个目标中返回一个常量,以便编译器可以优化 .

于 2015-12-03T19:35:49.360 回答