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

问题描述:

UPDATE:参考#19285042,并提交错误报告给苹果BSXPCMessage收到错误消息:连接中断

非常奇怪的错误,而不是在网上找到任何东西。它说“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 
+0

我在XCode 6中也以相似的方式使用CIFilter获得了相同的错误。我从来没有见过BSXPC,但我不知道它是什么。我发现这个要点在一个非常不同的环境中显示相同的问题:https://gist.github.com/saurabh360/19d739e3c0ccee1caf34 – michaelsnowden 2014-09-28 22:28:43

+0

我不知道,但如果我把某些东西,我会回答这个问题。 – Aggressor 2014-10-02 19:28:32

+0

这与ios 8中的内存有关。当我通过Xcode 5和ios 7运行相同的代码时,出现内存警告,但无论出于何种原因,它都不会在ios 8中生成。通过Xcode 6的内存分析器不会显示增加的内存使用情况。所以,我不太确定这个故事是什么。 – puzzl 2014-10-09 15:44:39

你所得到的消息是由于iOS的一个CIFilter错误8.

XPC服务旨在reduce crashes by isolating less stable components如过滤器和插件。这通常不是致命的,连接将通过启动重新启动服务来恢复。由于这不是一个长时间运行的服务,而只是一个操作,所以很可能你的图像过滤器并未实际应用。

这是iOS 8中的一个错误,而你应该文件Radar(错误报告)让苹果知道(又一块)iOS 8有一个错误。

如果你打算这样做,你应该安装Quick Radar,跟踪雷达号码,并回答堆栈溢出的许多其他类似的问题与同样的问题。鼓励其他人提交引用原始问题的重复雷达报告。这会给苹果更多的关注。

苹果真的冲了这一个。 previously mentioned workaround是好的,如果你可以做一个不同的CIFilter子类做你想做的。否则,你只需要复制图像,保存其NSData表示形式,或者以其他方式将其从CIImage工作流程中移除。

+1

我做了,他们停止了回复。但我很欣赏额外的信息! – Aggressor 2014-12-14 10:01:18

+0

你介意给我们雷达bug的号码吗?我将编辑这个问题,以便它包含解决方案,这将是“文件重复雷达引用这个原始雷达。”然后你可以选择这个作为“解决方案”。这将让其他人提交重复的雷达,引起苹果的注意。 – lswank 2014-12-14 17:28:12

+0

我为错误报告添加了我的电话号码 – Aggressor 2014-12-17 22:48:21

对我来说,这个问题正在发生时,我会尝试使用CIFilters在iOS8上的+出于某种原因?

我添加了一些代码来检查的iOS版本,如果它比7.9.9更大,我会用一个CIFilter替代品的iOS8上+这样的:https://stackoverflow.com/a/24083728/2057171

在一个单独的侧面说明,xCode6已经删除CIFilter框架从我项目共(奇怪),但其重新添加并没有解决这个问题崩溃了...

+0

当Game Center GKMatchmaker对话框出现时,我刚刚出现了这个问题。这是苹果自己的对话,我猜他们正在做一些CI不喜欢的事情。 – BGreenstone 2015-04-14 12:13:00

+0

回想起来,我能够让真正的CIFilter工作,我只需要以不同的方式对它们进行编码,我不记得我做了什么,这是一段时间以前的事情,但是我认为它与不运行CIFilter有关主线程或其他东西(你可以在iOS7中做,但是由于某种原因,他们阻止你在iOS8中执行)。 – 2015-06-19 22:28:50

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

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

这为我工作:

OBJ-C

CIContext *context = [CIContext contextWithOptions:@{kCIContextUseSoftwareRenderer:@(YES)}]; 

斯威夫特

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

编号:https://stackoverflow.com/a/29872829/3411787