Я обновляю существующее приложение для поддержки 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
}
}
Этот класс отлично работает до iOS 12. Теперь в строке if let filter = CIFilter(name: "CIQRCodeGenerator")
я всегда получаю nil.
Я потратил некоторое время на документацию Apple, но не нашел никакой полезной информации об этой проблеме.