2015-11-04 50 views
3

我在我的项目中有一个框架,它在NSDate上实现了一个扩展。扩展看起来像这样。两个不同模块中的同类扩展

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

我已经将这个框架导入到一个应用程序项目中。现在,如果我将相同的扩展名复制并粘贴到应用程序中的swift文件中,我的应用程序代码中的新副本似乎覆盖了框架代码中的副本。

当我在我的应用程序中调用此函数时,是否有一种方法可以使用命名空间来指定我想要的实现?

+0

我不明白你为什么要重写一个函数,你以后在你的应用程序中使用你的框架? –

+0

只需稍微更改名称或参数标签即可。你不想把你的自我与同名的两个不同的功能混淆?即使你知道你可能会混淆读你代码的其他人。 – cezheng

+0

是的,我意识到我可以改变这个名字...我有点惊讶,似乎没有一种方法来解决这个命名空间。我可以看到它对于一些开发团队来说是个大问题...... – Cruinh

回答

0

我迄今发现的唯一答案“不,你不能使用命名空间来防止这种情况发生。”但是,如果某人偶然使用了相同的功能签名,我仍然保持睁大眼睛来处理这种情况。