我使用这种方法通过ios7中的多对等体发送了一个文件:
_progressSend = [session sendResourceAtURL:imageUrl withName: info toPeer:peerID withCompletionHandler:^(NSError *error) {
// Implement this block to know when the sending resource transfer completes and if there is an error.
if (error) {
NSLog(@"Send resource to peer [%@] completed with Error [%@]", peerID.displayName, error);
}
else {
// Create an image transcript for this received image resource
}
}];这个问题非常奇怪。这就是发生的事情:
设备开始发送资源,进度条开始填满。例如,当我将应用程序放在后台,并查看我的电子邮件时,传输仍在进行中(我可以从另一台设备的进度栏中看到)。如果传输已经完成,我回到应用程序中,一切都很好,但如果我在资源仍在传输的情况下进入应用程序(例如,我退出了1/3的路径并以2/3的速度打开它),应用程序完全冻结,需要从多任务栏关闭。但是Xcode没有显示崩溃。这是如果应用程序继续运行,但用户界面完全冻结。有谁有主意吗?
发布于 2013-11-04 19:38:39
您是否尝试过将发送数据的代码包装在dispatch_async块中?这可能会有帮助。另外,如何获取imageurl?也许它在离开然后重新进入你的应用程序时无法读取
发布于 2014-01-21 03:44:03
我也以一种不同的方式解决了这个问题。在更新进度条的那部分代码中,你需要把代码放在下面的代码块中,让它调用主标题:
dispatch_async(dispatch_get_main_queue(), ^{
//insert progress bar code here
});我不知道为什么会发生这种情况,但这似乎为我解决了这个问题。
https://stackoverflow.com/questions/19695125
复制相似问题