应用程序没有响应

Posted

技术标签:

【中文标题】应用程序没有响应【英文标题】:Application does not respond 【发布时间】:2014-02-28 07:43:48 【问题描述】:

我有一种方法可以使用 lame 将 iTunes 上选定的歌曲编码为 mp3。现在我从名为“Encode”的 IBAction 中调用它。编码时,应用程序无法进入无响应状态。编码完成后,应用程序返回。 我想解决这个没有响应的状态。你能教我应该如何接近吗?

【问题讨论】:

【参考方案1】:

我猜您正在主线程上进行编码,这就是您的应用程序变得无响应的原因。您可能需要阅读有关threading 和concurrency 的文章以解决您的问题。

raywenderlich.com 上也有介绍,叫"Multithreading and Grand Central Dispatch on ios for Beginners Tutorial"。

【讨论】:

感谢您的回答。有了你的回答,我就知道了异步处理,叫做 Operation Queue。【参考方案2】:

您需要在不同于主线程的线程上调度它。否则它将阻塞应用程序的 GUI 部分运行的主线程。

这是一个如何做到这一点的例子。但是,如果要修改块外的变量,请小心。您可能需要查找 __block 关键字。

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0), ^

    // INSERT CODE HERE

);

【讨论】:

感谢您的回答。我发现你的答案是 GCD。另一方面,我发现了使用操作队列的方式,使用 NSOperationQueue。如果你教我哪个更好,我将不胜感激。 现在我找到了问题的答案,gcd 或 NSOperation。这是网址:***.com/questions/10373331/… 我从未研究过 NSOperationQueue(我相信这是一个相当新的东西),但绝对在我的名单上。也许其他人可以提供帮助?

以上是关于应用程序没有响应的主要内容,如果未能解决你的问题,请参考以下文章

Tomcat 应用程序没有响应且没有日志

当我按下返回按钮时应用程序没有响应

In-Context Checkout:没有为发布消息响应错误找到响应处理程序

问题记录-运行Tomcat,项目程序没有响应

Tomcat 没有响应

有没有办法直接在界面中解析改造响应,用函数解析响应