2016-09-28 44 views
2

有以下错误消息时我在Xcode 8运行我的项目:TCP_CONNECTION_EVENT_DISCONNECTED在Xcode 8

TCP_CONNECTION_EVENT_DISCONNECTED响应状态,失败和错误错误域= kNWErrorDomainPOSIX码= 61“连接被拒绝”的UserInfo = {NSDescription =拒绝连接}

下面是代码导致此问题:

@implementation的UIImageView(LoadAsyn)

+ (void) loadFromURL: (NSURL*) url callback:(void (^)(UIImage *image))callback { 
    dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0ul); 
    dispatch_async(queue, ^{ 
     NSData * imageData = [NSData dataWithContentsOfURL:url]; 
     dispatch_async(dispatch_get_main_queue(), ^{ 
      UIImage *image = [UIImage imageWithData:imageData]; 
      callback(image); 
     }); 
    }); 
} 

顺便说一句,我检查了我的网址。根本没有问题。有人提到dataWithContentsOfURL只能用于访问本地资源。但是这里是Apple所说的:

一个数据对象,包含来自aURL指定位置的数据。如果无法创建数据对象,则返回nil。

它没有说我们不能使用它的远程URL,我用了很长一段时间已经在我以前的Xcode。

有什么想法?谢谢。

P.S:

对不起,我想我可能是错的。基于Apple的最新文档:

请勿使用此同步方法来请求基于网络的URL。对于基于网络的URL,此方法可以在慢速网络上阻止当前线程几十秒,从而导致糟糕的用户体验,并且在iOS中可能会导致您的应用被终止。

但我用异步方式(在主线程以外的线程)。我有点困惑,我会对此做更多的研究。

+0

我使用AFNetworking解决了这个问题。但我仍然不太理解我的问题。 –

回答

1

虽然你从后台线程调用它,但是此方法与主线程同步。它不依赖于它从中调用的线程。

+0

真的吗?但苹果文件没有提到它在主线程中运行。它只是说它可以阻止当前的线程。但我在主线程以外的线程中运行它。不管怎么说,还是要谢谢你。 –