2015-07-21 20 views
0
寫一個庫

我試圖找到以下方案的詳細信息/說明:使用開源,而在斯威夫特

我正在寫在斯威夫特庫,並想在它使用一些開源庫。 如果我只將它們集成到我的庫中,是否有命名空間碰撞的機會? 會發生什麼,如果主機應用程序將使用:

  • 完全相同的開源庫
  • 同樣的庫,但版本不同

是否使用的CocoaPods改變了一些東西? 考慮一個場景,我在庫中導入AFNetworking(通過CocoaPods),主機應用程序也會使用它。

+1

模塊充當命名空間。如果兩個模塊具有相同的名稱,則會導致問題。簡單的回答:不要這樣做。 – mattt

回答

0

使用相同的庫,你不會有任何問題。使用不同的版本可能會導致問題,但這將取決於在不同版本中所做的更改。

Swift中的命名空間衝突很少見。正如@mattt所說,每個模塊都充當一個命名空間,所以與其他模塊中的類或函數的命名衝突不會像Objective-C中那樣存在。如果你有命名衝突,編譯器會告訴你。在這種情況下,您可以將衝突簽名添加到模塊名稱的前面。

我強烈建議您使用Cocoapods進行依賴關係管理。它處理版本控制,並會讓你的生活更輕鬆。

+0

我編輯了這個問題,Cocoapods如何處理? –