From 7cf2c02ad78863d7f6f72c5710e647a7cbeafaac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A8=8B=E6=80=9D=E6=BA=90?= Date: Fri, 17 Feb 2017 16:59:59 +0800 Subject: [PATCH] * add support custom CIContextFactory.use it fix crash in iOS8 --- QRCode/CIImageExtension.swift | 8 +++++++- QRCode/QRCode.swift | 2 ++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/QRCode/CIImageExtension.swift b/QRCode/CIImageExtension.swift index f096069..537855a 100644 --- a/QRCode/CIImageExtension.swift +++ b/QRCode/CIImageExtension.swift @@ -18,7 +18,13 @@ internal extension CIImage { /// /// - returns: an non-interpolated UIImage internal func nonInterpolatedImage(withScale scale: Scale = Scale(dx: 1, dy: 1)) -> UIImage? { - guard let cgImage = CIContext(options: nil).createCGImage(self, from: self.extent) else { return nil } + var ciContext:CIContext? + if QRCode.CIContextFactory != nil { + ciContext = QRCode.CIContextFactory!() + }else{ + ciContext = CIContext(options: nil) + } + guard let cgImage = ciContext?.createCGImage(self, from: self.extent) else { return nil } let size = CGSize(width: self.extent.size.width * scale.dx, height: self.extent.size.height * scale.dy) UIGraphicsBeginImageContextWithOptions(size, true, 0) diff --git a/QRCode/QRCode.swift b/QRCode/QRCode.swift index 826ee94..e7b6fdb 100644 --- a/QRCode/QRCode.swift +++ b/QRCode/QRCode.swift @@ -13,6 +13,8 @@ public typealias 🔳 = QRCode /// QRCode generator public struct QRCode { + public static var CIContextFactory:(()->CIContext)? + /** The level of error correction.