CIQRCodeGenerator在CIFilter中出现问题

Ole*_*huk 5 ios swift ios12

我正在更新现有的应用程序以支持iOS 12并CIFilter出现奇怪的问题.

这是一个简单的类,有一个功能generate():

class QRGenerator {
    static func generate(from string: String) -> UIImage? {
        let context = CIContext()
        let data = string.data(using: String.Encoding.ascii)

        if let filter = CIFilter(name: "CIQRCodeGenerator") {
            filter.setValue(data, forKey: "inputMessage")
            let transform = CGAffineTransform(scaleX: 7, y: 7)
            if let output = filter.outputImage?.transformed(by: transform), let cgImage = context.createCGImage(output, from: output.extent) {
                return UIImage(cgImage: cgImage)
            }
        }
        return nil
    }
}
Run Code Online (Sandbox Code Playgroud)

这个类完美地工作到iOS 12.现在排队if let filter = CIFilter(name: "CIQRCodeGenerator")我总是收到零.

我花了一些时间在Apple文档上,但没有找到有关此问题的任何有用信息.

use*_*037 0

我对 知之甚少CIFilters,但也许您可以尝试获取所有可能的过滤器名称:

let allFiltersNames = CIFilter.filterNames(inCategories: nil)
Run Code Online (Sandbox Code Playgroud)

我找不到匹配的过滤器CIQRCodeGenerator,但可能有其他名称不同的过滤器可以满足您的需求。

  • 你认为这是苹果的错误吗?因为在文档中我们可以看到这个过滤器是存在的。 (2认同)