2017-04-07 13 views
1

私は、同様のタスクを行うが、そのプラットフォームでのみ利用可能なAPIを使用している関数を持つクラスを作成しています。特定のプラットフォーム用のビルド時に機能にアクセスできないようにすることは可能ですか?特定のプラットフォームにアクセスできるようにするにはどうすればいいですか?

例:

func myFunction() { 
    #if os(macOS) 
    // do something 
    #elseif os(iOS) 
    // do something else 
    #else 
    // do a final thing 
    #endif 
} 

もう少し情報here too

class myClass { 

    // How can I hide this function when I'm building for macOS? 
    class func myFunctionForIOS() { 

    } 
    // And hide this when building for iOS? 
    class func myFunctionForMACOS() { 

    } 
} 

答えて

1
class ClassA{ 
    //define common method 
    virtual void MethodA() = 0; 
} 

class ClassA_iOS_Impl: public ClassA{ 
    //override your implement for iOS 
    void MethodA() override {//call iOS specific API} 
} 

class ClassA_Mac_Impl: public ClassA{ 
    //override your implement for Mac 
    void MethodA() override {//call Mac specific API} 
} 

プラットフォームに応じて異なるファイルを作成します。

+0

これは良いことでもあります。モジュラリティのためのカスタマイズのローカリティを扱っています。プリプロセッサディレクティブと仮想メソッドの両方に必要な引数があります。 – ColGraff

関連する問題