' - [CIContext initWithOptions:]:发送到实例的无法识别的选择器

Lum*_*lxk 4 ios swift

我用它来生成一个大图像:

let context = CIContext(options: nil)
let bitmapImage: CGImageRef = context.createCGImage(image, fromRect: extent)!
CGContextSetInterpolationQuality(bitmapRef,  CGInterpolationQuality.None)
CGContextScaleCTM(bitmapRef, scale, scale);
CGContextDrawImage(bitmapRef, extent, bitmapImage);
let scaledImage: CGImageRef = CGBitmapContextCreateImage(bitmapRef)!
return UIImage(CGImage: scaledImage)
Run Code Online (Sandbox Code Playgroud)

它在iOS 9和10中运行良好,但不是8.我在调试器中得到了这个:

因未捕获的异常'NSInvalidArgumentException'而终止应用程序,原因:' - [CIContext initWithOptions:]:无法识别的选择器发送到实例0x7f868d5dc8e0'

此外.我试着let context = CIContext()改用.但是我在第二行得到了零.我正在使用Xcode 8和Swift 2.3.请在这件事上给予我帮助!谢谢!

mat*_*att 10

我不知道这是否可行,但我们应该尝试一下:让我们在Objective-C中写下这一行.所以:

ContextMaker.h

#import <Foundation/Foundation.h>
#import <CoreImage/CoreImage.h>

@interface ContextMaker : NSObject

+ (CIContext*) makeMeAContext;

@end
Run Code Online (Sandbox Code Playgroud)

ContextMaker.m

#import "ContextMaker.h"

@implementation ContextMaker

+ (CIContext*) makeMeAContext {
    return [CIContext contextWithOptions:nil];
}

@end
Run Code Online (Sandbox Code Playgroud)

桥接标题:

#import "ContextMaker.h"
Run Code Online (Sandbox Code Playgroud)

迅速:

let c = ContextMaker.makeMeAContext()
Run Code Online (Sandbox Code Playgroud)

它只需要你花一点时间来尝试它,所以试一试,看看我们是否可以通过那条麻烦的线路......