swift – 不能调用非函数类型’CIImage?’的值?

swift – 不能调用非函数类型’CIImage?’的值?,第1张

概述这段代码确实编译完好 let ciImage = CIImage(image:UIImage()) 然而,当我把它移动到UIImage的延伸 extension UIImage { func foo() { let ciImage = CIImage(image:UIImage()) // compile error }} 我得到以下编译错误 Cannot ca 这段代码确实编译完好
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?’的值?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1039692.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存