2

UIDevice は watchOS では使用できないため、両方の OS (iOS と WatchOS) で実行されるライブラリで特定のコードの実行を監視するためのデバイスを検出する方法を考えています。watch_os の特定のクラスを使用して、それが利用可能かどうかを確認できますが、その手法以外に何かあるかどうかを知りたいだけです。その場合、どのクラスを使用しても安全ですか?

4

1 に答える 1

0

Swift を使用していて、ライブラリ クラスの 1 つが MyClass と呼ばれている場合。

これを iOS ターゲットにコンパイルします。

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

これを watch ターゲットにコンパイルします。

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

これで、すべてのターゲットで使用でき、異なる値を返す関数ができました。

この関数は、コンパイラが最適化できるように、各ターゲットで定数を返します。

于 2015-12-03T19:35:49.360 に答える