问题标签 [completionhandler]

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.

0 投票
2 回答
10824 浏览

java - Java中的完成处理程序?

我一直在为 iOS 编写代码,我对 Objective-C 中的块概念非常熟悉。现在,我倾向于将 Java 用于 Android,并尝试将一些应用程序从 Android 转换为 iOS。

我读到在 Java 中没有完美的块等价物,所以我想知道实现完成处理程序或任何可以类似工作的东西的最佳替代方案是什么。

0 投票
8 回答
16675 浏览

ios - 如果用户按下取消,UIActivityViewController 完成处理程序仍会调用操作

在我的 UIActivityViewController 中,我使用完成处理程序来执行“成功共享”通知。它可以工作,但我唯一的问题是,如果用户按下取消,它仍然会显示通知。

这是我的完成处理程序代码,

谢谢您的帮助!

0 投票
3 回答
3346 浏览

ios - 从块内部返回方法对象

我想知道如何正确执行以下操作:我有一个返回NSData对象的方法。它NSData从 a 中获取对象UIDocument。该NSData对象可能会变大,因此我想确保它在响应开始之前已完全加载。因此,我想从块本身返回方法的值。所以是这样的:

这会导致错误,因为return显然是指block's return

我怎样才能做到这一点而不必使线程阻塞等待/while循环?

谢谢。

0 投票
0 回答
97 浏览

ios - 从 FBRequest CompletionHandler 更新 UIProgressView

我要疯了。我知道我必须从主线程更新 UI,并尝试了performSelectorOnMainThread方法并将 progressView 更新包装在dispatch_async( dispatch_get_main_queue(), ^{ update progressView });

谢谢!

0 投票
0 回答
217 浏览

ios - 应用程序在后台使用 NSURLSession 在 WiFi 失败后恢复下载?

我看到很多帖子在后台讨论WiFi丢失的问题,但仍然找不到任何解决方法。我正在使用NSURLSession在后台下载一组文件。问题是当WiFi关闭时,下载被取消。有没有办法在应用程序仍在后台时重新开始下载。我知道后台守护进程和代表关于 NSURLSession 但仍然找不到解决方法。请帮忙?

有什么方法可以了解后台守护进程当前正在下载文件还是处于空闲状态?当应用程序在后台运行 2-3 小时时,下载似乎暂停了?

0 投票
1 回答
494 浏览

ios - iOS、Push、didReceiveRemoteNotification、UIBackgroundFetchResult 的影响

我明白“UIBackgroundFetchResult”是什么意思。但有什么影响?

将 completionHandler 设置为“UIBackgroundFetchResultNewData”而不是“UIBackgroundFetchResultNoData”时,某些行为是否有所不同?这与 Apples Push 服务有关吗?

苹果是否提供更多/更快?

或者我可以在应用程序唤醒时使用“变量”吗?如果是,如何?

谢谢斯坦

参考: https ://developer.apple.com/library/ios/documentation/uikit/reference/UIApplication_Class/Reference/Reference.html#//apple_ref/doc/c_ref/UIBackgroundRefreshStatus

0 投票
2 回答
1549 浏览

ios - 更改完成块内的属性值

我正在尝试用 Swift 重写 Apple 的 AVCam 示例。当我检查设备是否被授权时,我想将属性deviceAuthorized设置为 true 或 false。

我进入了块,因为我在输出中得到“访问被授予”。但是当我想检查我的财产是否被改变时,它仍然说它是假的。我也尝试过使用局部变量,但这也不起作用。

我究竟做错了什么?

0 投票
1 回答
2033 浏览

ios - 未调用完成处理程序 - iOS

我有一个带有 IBAction 的简单 iOS 应用程序。但是,完成处理程序代码没有运行,我无法弄清楚它为什么没有运行。这是我的代码:

我究竟做错了什么?它应该运行,但它没有。

谢谢你的时间,丹。

0 投票
1 回答
669 浏览

objective-c - GCD - 如何在主线程上等待在主队列上执行的异步回调

我想一个接一个地执行 2 个块,其中每个块都是异步执行的。

例如

现在,我需要anotherMethodWithCompletionHandler在 ' ' 完成后发生 ' someMethodWithCompletionHandler' (包括它的完成处理程序)

通常我会创建一个dispatch_group并在两个方法之间等待(我不能将这两个方法嵌套在另一个完成处理程序中,因为它需要移动大量代码)

但问题是第一个完成处理程序块是在主线程中调用的(由方法本身在主线程中调用块)所以我不能有效地创建一个dispatch_group阻塞主线程。

所以线程状态看起来像这样

那么,如果不使用大量嵌套方法并且能够阻塞主线程直到全部完成,我怎么能做到这一点呢?

0 投票
1 回答
648 浏览

objective-c - 作为命令行工具运行时,如何让 NSURLSession 处理 completionHandler

我对 Objective-C 有点陌生。我有一些 PERL 脚本从需要客户端证书身份验证的站点下载文件。我想将这些脚本从 PERL 移植到 Objective-C 命令行工具,然后我可以从终端运行这些工具。根据我的研究,我得出的结论是 NSURLSession 应该可以满足我的需要。但是,我无法让 NSURLSession 在我的命令行工具中工作。它似乎构建良好,没有错误,但没有从 completionHandler 中返回任何内容。此外,我已将相同的代码放入 Mac OS X App 工具中,它似乎工作正常。

这是我的 main.m 文件:

这是我的实现文件:

这是我的实现文件:

正如你所看到的,我试图先在这里做一些非常简单的工作,然后我可以在此基础上进行构建。我所看到的一切都表明这可能与 NSURLSession 异步运行的事实有关,但我一直无法找到专门针对如何在构建命令行工具时解决此问题的解决方案。任何人都可以提供的任何方向将不胜感激。

干杯,