let ciImage = CIImage(image:UIImage())
然而,当我把它移动到UIImage的延伸
extension UIImage { func foo() { let ciImage = CIImage(image:UIImage()) // compile error }}
我得到以下编译错误
Cannot call value of non-function type 'CIImage?'
为什么?
用Xcode游乐场测试7.1.1.和Swift 2.1
这是因为,一旦进入UIImage,CIImage一词被视为UIImage的CIImage财产,由于隐含的自我作为消息收件人 – 换句话说,Swift将你的CIImage变成self.CIImage,从那里下降.您可以通过Swift使用模块命名空间来消除歧义:
extension UIImage { func foo() { let ciImage = UIKit.CIImage(image:UIImage()) }}
编辑在Swift 3中,这个问题会消失,因为所有的属性将以小写字母开始.该属性将被命名为ciImage,并且不会与CIImage类混淆.
总结以上是内存溢出为你收集整理的swift – 不能调用非函数类型’CIImage?’的值?全部内容,希望文章能够帮你解决swift – 不能调用非函数类型’CIImage?’的值?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)