2017-02-01 83 views
0

我們爲同一個項目創建了兩個目標(Target_One & Target_Two)。Swift 3如何管理不同目標的不同代表

  • Target_One包含SDK1並委派Target1SDKHelperDelegate
  • Target_Two包含SDK2並委派Target2SDKHelperDelegate

之所以要創建兩個目標:我們需要上傳兩個應用程序相同UI但不同的SDK集成。

正如我們所知,每個SDK都有自己的代表。所以我們想要應用特定於目標的代表。

例子:Target_One有一個名爲類MyClass的

class MyClass: NSObject, Target1SDKHelperDelegate { 

} 

在上面的類,我們已經實現了Target1SDKHelperDelegate代表。 我們也爲Target_Two使用了相同的類,並且我們要爲Target_Two使用Target2SDKHelperDelegate。

那麼我們如何才能讓兩個不同的代表參與兩個不同的目標?

我們也知道要管理目標我們應該使用下面的代碼。

#if Target_One 

#else 

#endif 

但誰能告訴我們如何通過上述用於管理委託?

我們想要做的事,如:

class MyClass: NSObject 
     #if Target_One 
      , Target1SDKHelperDelegate 
     #else 
      , Target2SDKHelperDelegate 
     #endif 
    { 

    } 
+0

在同一個目標中簡單實現兩個委託是最容易的,但是在初始化時只激活其中一個委託? – Russell

+0

@Russell但我們不想爲兩個目標都添加SDK。我們將有一個SDK用於一個目標,因此我們必須爲每個目標只實現一個代理。 – iDev

回答

0

其實這是非常簡單和直接。最近我遇到了iPA的大小問題導致像20MB那麼大。我禁用了某些目標中不需要的功能,並且在引用禁用的功能文件時必須管理像Appdelegate這樣的共享文件。通過簡單地複製Appdelegate文件並將其放入與特定目標相關的特定路徑來解決此問題。然後在其目標下包含每個appDelegate文件。有效 。這個想法是一樣的,如果你有Firebase推送通知pLists多個目標或imageAssets文件夾的配置文件。希望這可以幫助。

相關問題