В Swift это необязательно для префиксных классов, поскольку их модуль действует как пространство имен.
Как насчет префикса функций расширения? Например:
extension UIImage {
public func hnk_hasAlpha() -> Bool { ... }
}
С одной стороны, Swift не является динамическим, поэтому столкновения будут генерировать ошибки компилятора.
Но что произойдет, если скомпилированный код запускается в будущей версии iOS/OS X, в которой добавлен один из моих методов расширения? Могут ли методы в разных модулях считаться разными символами, даже если они имеют одну и ту же подпись?
Разве это имеет значение, если расширенный класс является подклассом NSObject или чистым классом Swift?