BSXPCMessage收到消息错误:连接中断

Agg*_*sor 45 xcode objective-c uiimageview ios xcode6

更新:参考#19285042并向苹果提交错误报告

非常奇怪的错误,没有在网上找到任何东西.它说"BSXPCMessage收到错误消息:连接中断"

我只是在做一些基本的过滤器应用程序.如果我将UIImageView.image重新分配给另一个UIImage,则只会出现错误消息.如果我只是注释掉那行,我就不会得到错误.因此,当我将过滤后的图像分配给UIImageView时,如果您能够想到出现此消息的原因,那将非常有用.

如果您能为此错误提出任何原因,我将不胜感激.

#import "FilterTestsViewController.h"

@interface FilterTestsViewController ()

@end

@implementation FilterTestsViewController

UIImage* _originalImage;
UIImage* _filterImage;
UIImageView* _uiImageView;

- (void)viewDidLoad
{
    [super viewDidLoad];
    [self initialize];
    //flip image by 180*

}

-(void)initialize
{
    _originalImage = [UIImage imageNamed:@"ja.jpg"]; //creates image from file, this will result in a nil CIImage but a valid CGImage;
    [self createFilterImage];
    _uiImageView = [[UIImageView alloc] initWithImage:_filterImage]; //creates a UIImageView with the UIImage
    [self.view addSubview:_uiImageView]; //adds the UIImageView to view;
}

-(void)createFilterImage
{
    NSString* filterName = @"CIFalseColor";
    CIImage* ciImage = [CIImage imageWithCGImage:_originalImage.CGImage];
    CIFilter* filter = [CIFilter filterWithName:filterName keysAndValues:kCIInputImageKey,ciImage, nil];
    _filterImage = [UIImage imageWithCIImage:[filter outputImage]];
}

@end
Run Code Online (Sandbox Code Playgroud)

lsw*_*ank 40

您收到的消息是由iOS 8中的CIFilter错误引起的.

XPC服务旨在通过隔离不太稳定的组件(如过滤器和插件)来减少崩溃.这通常不是致命的,并且startd重新启动服务将恢复连接.由于这不是一个长期运行的服务,而只是一个操作,很可能实际上没有应用您的图像过滤器.

这是iOS 8中的一个错误,你应该提交一个Radar(错误报告)让Apple知道(还有一部分)iOS 8有一个bug.

如果您打算这样做,您应该安装Quick Radar,跟踪Radar编号,并回答Stack Overflow上的许多其他类似问题,但问题相同.鼓励其他人提交引用原始问题的重复雷达报告.这将使苹果公司更加关注虫子.

苹果真的把这个赶了出来.在前面提到的解决方法是好的,如果你能做出不同的CIFilter子做你想做的.否则,您将不得不修改图像,保存其NSData表示,或以其他方式从CIImage工作流中删除它.

  • 如果这个bug被修复了,有什么新闻吗?我在海报上遇到了类似的问题. (3认同)

coc*_*oco 5

通过阅读raywenderlich文章,我发现在上下文中添加一个选项,以便在CPU而不是GPU中完成渲染,将删除警告.

let context = CIContext(options:[kCIContextUseSoftwareRenderer : true])