在Swift中,不需要prefix classes,因为它们的模块充当命名空间。前缀扩展函数
什么是前缀扩展功能?例如:
extension UIImage {
public func hnk_hasAlpha() -> Bool { ... }
}
一方面,Swift不是动态的,所以碰撞会产生编译错误。
但是,如果编译后的代码在未来的iOS/OS X版本中运行,而我的扩展方法之一被添加,会发生什么情况?即使它们具有相同的签名,不同模块中的方法是否会被视为不同的符号?
如果扩展类是NSObject子类或纯Swift类,它会有所作为吗?
为什么您认为向Apple提供的课程添加功能是一个好主意?为什么不写一个函数。这对于使用代码的未来开发者来说很明显。或子类。 – zaph 2014-08-29 12:03:45
这个问题的技术方面与这个问题的技术方面无关,Swift是如何处理这种碰撞的。也就是说,我认为扩展Apple类有助于在限制符号范围的同时为函数提供更好的上下文,并且实现自定义协议而不诉诸包装对象等等。 – hpique 2014-08-29 12:37:35