问题标签 [dispatch-async]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
objective-c - Objective C - 单元测试 dispatch_async 块?
我阅读了其他帖子,这些帖子提出了这个问题的解决方案。但是,他们的解决方案需要将 hacky 代码添加到我的应用程序中才能对其进行测试。对我来说,干净的代码比单元测试更重要。
我经常在我的应用程序中使用 dispatch_async,但我在对其进行单元测试时遇到了麻烦。问题是块在我的测试完成后执行,因为它在主队列上异步运行。有没有办法以某种方式等到块被执行然后继续测试。
我不想仅仅因为单元测试而将完成传递给块
objective-c - 异步数据加载和重新加载 UITableView 之间的时间间隔
我在数据的 getter 方法中将数据异步加载到数组中。
首先它会产生一个空数组,所以我的表自然会加载 0 行。
数据加载完成后,我调用reloadData
更新我的表,但是,正在下载的数据和显示数据之间似乎存在约 6 秒的差距UITableView
。
有谁知道这可能发生的任何原因?
我使用dispatch_async
优先级高的方法。
我什至记录了加载数据和插入数据过程中的每个点,它显示了这一点。
此外,如果我在加载数据时不断上下滚动表格,表格会尽快显示其数据,而不是在插入之间存在这种间隙。
代码:
iphone - 调用dismissViewControllerAnimated 时的exc_bad_access
我有一个向上滑动的 ViewController。当您单击“保存”时,它会向服务器发送请求。当请求完成时,它会关闭 ViewController。我将 NSURLConnection 切换为使用异步和块(https://github.com/rickerbh/NSURLConnection-Blocks)。现在关闭 ViewController 会引发“线程 2:程序接收到的信号:EXC_BAD_ACCESS”。我正在使用 ARC,如果这很重要的话。
这是日志
我花了 2 个小时在这方面寻求帮助。如果有人知道有什么可以帮助的,请说出来!:)
ios - ios 5 NSURLConnection 并在待机模式下阻止下载
我正在使用NSURLConnection
从服务器下载内容(并且我正在开发 iOS 5.0 中的 iPad 应用程序)。我希望NSURLConnection
即使 iPad 处于待机状态也能继续下载。是否可以?
这是我的代码:
谢谢!
ios - dispatch_async() “默默地”失败——为什么?
全部:
我正在努力解决一个dispatch_async()
问题。我的目标是让 TableViewController (TopStoriesTVC) 显示一些 rss 提要。xml 获取和解析被分解为一个名为 Reporter 的类。
TopSToriesTVC 告诉记者 fetchNewsFrom:。一旦完成,并且 xml 解析完成,Reporter 将调用 TopStoriesTVC 的 fileStories:fromReporter: 方法。
TopStoriesTVC =====================================> 记者
这在单线程环境中效果很好。但是,我想获取几个 rss 流,所以不是:
// 在 TopStoriesTVC ...
// 在记者中...
效果很好,我尝试使用以下方法包装它们dispatch_async()
:
和
那些根本不起作用。我正在使用 get_main_queue() 因为 fileStories:fromReporter: 包含一个[self.tableView reloadData];
语句,我知道这需要在主线程上发生。
当我说它们“根本不工作”时,具体来说,我得到 a)控制台中没有错误消息,b)tableView 中没有任何内容,c)我的NSXMLParserDelegate
方法甚至没有被调用,d)只是设置调试语句引导我进入一堆汇编语言。
谁能发现这里出了什么问题?或者有什么建议?我真的很感激。
performance - 为什么我的 UIView 不更新并显示中间结果?
在我的应用程序中,我想将大量(相同的 PNG)文件堆叠在一起,并向用户显示图像结果和进度条。为了提高性能,我想出了以下代码,但只有当 for 循环完成时,我才会看到最终结果。对于大量图像,这不是我想要的,我真的很想看到中间结果。以下代码可能包含错误,我还找不到:
我也在努力解决放置 UIGraphicsBeginImageContext/UIGraphicsEndImageContext 对的最佳位置的问题,因为我想尽量减少正在使用的内存量并最大限度地提高整体性能。
ios - NSUrlConnection 异步调用提前输入
我正在我的应用程序中创建一个类型,它可以访问远程休息服务。现在的问题是我正在使用一个 NSUrl 来连接它是同步的,并且由于通过 json 对象的循环量需要一些时间来解析。这导致 UI 在我搜索时冻结。
因此我决定尝试这样做:
它似乎好一点,但仍然挂起,因为大部分处理都是在完成处理程序中完成的,它与我假设的主队列相关联。
然后我尝试创建自己的 NSOperationsQueue 或使用 dispatch_asynch:
它工作正常。唯一的问题是 uitableview 现在需要 10 秒来刷新数据。我现在可以在没有任何中断的情况下打字,但更新 uitableview 时会有很大的延迟。
我接近这个权利吗?任何帮助表示赞赏。
谢谢!
objective-c - 代码运行后自定义 segue 动画延迟。(目标 C)
我dispatch_async
链接了几种方法,因此它们对我系统中的用户进行身份验证。
下一个异步方法仅在前一个完成时发生,因为它们每个都有完成处理程序。
最后一个完成后,我使用 2 个uiview
动画块执行自定义转场。
但是,当我记录每个实际运行时,日志和实际发生的动画之间存在相当大的差距,最终视图动画和完成块被调用。
我真的不知道在此处添加我的代码会有多大用处,但我已经测试过,它必须是异步方法,因为如果我将它们注释掉并且只是返回YES
动画,那么动画就会与日志同时发生而不会延迟。
有谁知道为什么会发生这种情况?
编辑 *(带代码)
用于电子邮件、用户、用户 ID 的典型“存在检查”。
检查用户是否存在
转场
登录VC
ios - dispatch_async 中的子视图在长时间延迟后出现
我已经使用 dispatch_async 将 xml 文档的解析放入后台,我将信息放入了一个数组中,并且通过 for 循环,我将每个元素的内容分配给 UILabel(现在),问题在于输出控制台我可以看到每个元素的正确内容,但 uilabel 仅在长时间延迟后才添加。
代码:
如您所见,我使用了 performSelectorOnMainThread 但没有使用,标签不会立即出现一次,而是仅在块结束后 10 或 15 秒后正确显示。
想法?
提前致谢
好的编辑 1
感谢 Shimanski Artem 的建议,我现在有了以下信息:
}
我已经将 uilabels 的创建放在了调度之外,在 caricaItem 方法中,我已经准备好了一个充满珍贵数据的数组,但是同样的延迟......如果在 caricaItem 我使用 UITableView......
正确的方法是什么?
谢谢
objective-c - NSRunLoop runMode 并不总是处理 dispatch_async
我正在尝试更好地了解队列及其工作方式。这个片段是为了测试他们的行为:
正如所料,它会在日志中生成:
奇怪的是,如果从 UIViewController 的 (void)viewDidAppear:(BOOL)animated 调用此代码,那么它会改变行为。具体来说,它会因以下日志而死锁:
我的问题是为什么 NSRunLoop runMode 在这种情况下不处理通过 dispatch_async 发送的块,但在其他情况下却处理?