首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Swift3.0 Xcode8 iOS7 CIContext(选项:零)崩溃

Swift3.0 Xcode8 iOS7 CIContext(选项:零)崩溃
EN

Stack Overflow用户
提问于 2016-10-25 09:42:50
回答 2查看 622关注 0票数 1

以下代码在iOS7+的Swift2.2、iOS8+的Swift3.0中运行良好,只会在Swift3.0 iOS7中崩溃。let context = CIContext(options: nil)

控制台信息:

-CIContext initWithOptions::未识别的选择器发送给实例0x147366e0 2016-10-25 17:32:27.903 CMBMobile due 1017:4403*由于未识别的异常“NSInvalidArgumentException”,原因:'-CIContext initWithOptions::未识别的选择器发送到实例0x147366e0‘

我试图将其转换为let context = CIContext(),但当调用context.createCGImage(ciimage, from: originRect)时,它的地址是0x00000000.And,因此似乎没有初始化上下文实例。

EN

回答 2

Stack Overflow用户

发布于 2017-01-30 11:45:33

由于Swift 3只兼容于iOS 8+,所以它正在崩溃。

票数 0
EN

Stack Overflow用户

发布于 2017-05-18 03:28:11

在Swift3.0中,这是苹果公司的一个bug。您可以为CIContext创建一个类别。

代码语言:javascript
复制
#import <CoreImage/CoreImage.h>

@interface CIContext (FixBug)
+ (CIContext *)swiftContextWithOptions:(NSDictionary<NSString *, id> *)options;

@end


#import "CIContext+FixBug.h"
@implementation CIContext (FixBug)
+ (CIContext *)swiftContextWithOptions:(NSDictionary<NSString *,id> *)options {
    return [CIContext contextWithOptions:options];
}
@end

你应该使用这个函数。

代码语言:javascript
复制
let context = CIContext.swiftContext(options: [kCIContextUseSoftwareRenderer: false])
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40236571

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档