gpt4 book ai didi

swift - 无法调用非函数类型的值 'CIImage?'

转载 作者:IT王子 更新时间:2023-10-29 05:20:29 24 4
gpt4 key购买 nike

这段代码编译得很好

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 Playground 7.1.1 进行测试。和 Swift 2.1

最佳答案

这是因为,一旦在 UIImage 内部,术语 CIImage 被视为 UIImage 的 CIImage property,由于隐式 self 作为消息接收者——换句话说,Swift 将你的 CIImage 转换为 self.CIImage,然后一切都从那里开始。

您可以通过 Swift 使用模块命名空间来消除歧义来解决这个问题:

extension UIImage {
func foo() {
let ciImage = UIKit.CIImage(image:UIImage())
}
}

编辑 在 Swift 3 中,这个问题将消失,因为所有属性都将以小写字母开头。该属性将被命名为 ciImage,不会与 CIImage 类混淆。

关于swift - 无法调用非函数类型的值 'CIImage?',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34106877/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com