Ответ 1
Это потому, что, как только внутри UIImage, термин CIImage
рассматривается как свойство CIImage
UIImage, из-за неявного self
в качестве получателя сообщения - другими словами, Swift превращает ваш CIImage
в self.CIImage
и все это спустится оттуда.
Вы можете решить эту проблему, устранив использование Swift использованием пространства имен:
extension UIImage {
func foo() {
let ciImage = UIKit.CIImage(image:UIImage())
}
}
EDIT В Swift 3 эта проблема исчезнет, потому что все свойства начинаются с маленьких букв. Свойство будет называться CIImage
, и не будет путаницы с классом CIImage.