2015-11-04 66 views
3

我在我的項目中有一個框架,它在NSDate上實現了一個擴展。擴展看起來像這樣。兩個不同模塊中的同類擴展

extension NSDate { 
    func isGreaterThanDate(otherDate: NSDate) -> Bool { 
     //function implementation here 
    } 
} 

我已經將這個框架導入到一個應用程序項目中。現在,如果我將相同的擴展名複製並粘貼到應用程序中的swift文件中,我的應用程序代碼中的新副本似乎覆蓋了框架代碼中的副本。

當我在我的應用程序中調用此函數時,是否有一種方法可以使用命名空間來指定我想要的實現?

+0

我不明白你爲什麼要重寫一個函數,你以後在你的應用程序中使用你的框架? –

+0

只需稍微更改名稱或參數標籤即可。你不想把你的自我與同名的兩個不同的功能混淆?即使你知道你可能會混淆讀你代碼的其他人。 – cezheng

+0

是的,我意識到我可以改變這個名字...我有點驚訝,似乎沒有一種方法來解決這個命名空間。我可以看到它對於一些開發團隊來說是個大問題...... – Cruinh

回答

0

我迄今發現的唯一答案「不,你不能使用命名空間來防止這種情況發生。」但是,如果某人偶然使用了相同的功能簽名,我仍然保持睜大眼睛來處理這種情況。