问题标签 [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 回答
251 浏览

objective-c - swift中属性的完成处理程序

我正在尝试快速使用名为 MZFormSheetController 的控件。在给出的示例中,它提供了一个属性作为完成处理程序,如果我理解正确的话,但是我在用 Swift 翻译它时遇到了困难。任何帮助,将不胜感激。

这是在 obj-c 示例中。

我尝试了很多变体并在网上进行了广泛的搜索,但我找不到任何可以帮助我的东西,所以我被困在这里

以下是相关文档:Cocoa Docs:: MZFormSheetPresentationController:: didPresentContentViewControllerHandler

0 投票
1 回答
83 浏览

ios - swift中的以下闭包语法有什么区别

这是我的闭包函数声明

当我像这样调用下面的函数时,它不会打印“假”的正确结果,而是打印“(0个元素)”

但是当我编写如下代码时,它工作得非常好。

// 或者

我是 Swift 编程语言的新手,最近尝试使用 Swift 语言,但对闭包的语法和使用完全感到困惑。任何人都可以帮助解释这两种语法有什么区别,为什么它在第二种语法中可以正常工作,但在第一种语法中不能正常工作。

提前致谢。快乐编码。

0 投票
2 回答
550 浏览

ios - nsurlsessiondatatask 在向基于 REST 的 url ios 发送发布请求时返回 nil

当我执行代码时,调试器从 NSURLSessionDataTask 跳转并且生成的日志是 __NSCFLocalDataTask: 0x7ff061751960>{ taskIdentifier: 1 } {suspended} 并且在 NSData 和 NSResponse 中没有任何数据。

0 投票
1 回答
1366 浏览

ios - 当应用程序从后台删除或设备重启时使用 NSURLSession 恢复任务

我检查了许多文档,但在应用从后台删除或设备重启时找不到使用 NSURLSession 恢复任务的解决方案。

我正在处理亚马逊 S3 上传一些文件,因为我能够

  1. 当应用程序在前台和后台时,使用 NSURLSessionUploadTask 将文件上传到 S3。
  2. 当应用程序在上传时由于任何其他原因崩溃并且应用程序未从后台删除时恢复任务。
  3. 如果我在上传时重新启动设备并且应用程序未从后台删除,则重新启动任务。

这是我用 appdelegate 的 applicationDidBecomeActive 方法编写的实现恢复功能的代码。

现在问题出在上面提到的两种情况(2和3)中

2015-06-12 17:12:32.902 AppName[162:60b] ------- 没有以前的任务 -------

所以我的问题是当应用程序从后台删除时是否可以恢复任务?或者任何人都可以给我参考链接,我可以找到相同的答案,任何帮助表示赞赏。

0 投票
2 回答
1143 浏览

ios - 在 Swift 中向我的 NSURLSession 添加完成处理程序

我在 User 类中有以下函数:

问题是...

当我的登录 UIButton 的 IBAction 被触发时,在我的 LoginViewController 中调用此尝试登录()函数。在此 IBAction 函数内调用了尝试登录()后,它后面的语句检查用户的 loginSuccessful 变量是否已设置为 true。如果为真,则意味着切换到不同的视图控制器(登录用户);如果为 false,则表示显示错误消息。

但当然这不起作用,因为当我检查 loginSuccessful 是否已设置为 true 时(在我调用尝试登录()之后),我的 NSURLSession 还没有达到这一点。我觉得我需要在我的 NSURLSession 中添加一个“关闭”或“完成处理程序”,但即使在搜索 StackOverflow 以获取示例之后,我也真的不明白如何做到这一点。我是 iOS 编程和异步/同步方法的初学者,所以不要评判我!

如何修改现有的尝试登录()函数,以便在 NSURLSession 完成时触发某些事情(这样我可以在视图控制器中转到另一个屏幕或在出现错误时向用户显示警报)?

这是我的 LoginViewController 中的代码:

0 投票
2 回答
60 浏览

swift - 快速从 http sendAsyncRequest 调用中返回数据

好的,首先,我已经阅读了有关该主题的其他几篇文章,并且我知道我要描述的可能是同步调用,但我真正需要的是获取数据并使用它,所以如果我应该看在其他方向让我知道:

我必须调用 api 来检索 json 对象并使用它们来填充表视图。我的问题是我无法传递/返回数据以使用它:

在控制器中:

调用函数:



println(testjson[0])总是返回“ nill”,所以我假设return data我的callProjectTypes函数中的“”在数据到达之前返回。

我应该怎么做才能完成这项工作?

0 投票
1 回答
140 浏览

swift - reverseGeocode - 完成处理完成处理程序?(迅速)

实现这一目标的最佳方法是什么?我有一个函数可以获取给定经度/纬度的 reverseGeocode,它工作得很好。但是因为它在获得地址信息时是异步的,所以我已经执行了将地址提交到数据库的行。我需要完成完成处理程序还是有其他方法。我确实尝试了一个 do/while 循环(不要笑),但没有奏效。

0 投票
4 回答
1721 浏览

ios - 方法在完成处理程序之前返回

我正在为我的项目开发一个 networkUtil,我需要一个获取 url 并返回从该 url 接收到的 JSON 的方法,使用 NSURLSessionDataTask 从服务器获取 JSON。方法如下:

问题是我的方法中的completionHandler和方法本身不同的线程上运行,并且在最后一行中,jsonResponse 始终为nil

我应该如何使用从urlString返回的 json设置jsonResponse? 这个问题的最佳实践是什么?

0 投票
2 回答
531 浏览

ios - 在 Swift 中使用 .Success 枚举返回非可选

问题:

当传入的枚举也是类型时,如何以强制传递非可选类型的方式定义函数.Success?如果无法做到这一点,那么最好的建模方法是什么?

语境:

我正在围绕我们的 API 制作基于完成处理程序的包装器。传递回处理程序的参数包括一个enum给出响应状态的参数和一个User实例。enum是这样的:

方法签名是这样的:

这样做的问题是它.Success可能会与nil用户一起返回,这不应该发生。

我希望能够强制执行,如果.Success通过,用户不能是nil. 这可以做到吗?如果没有,最好的管理方法是什么?

提前感谢您的帮助。


@AlexsanderAkers 和 @neilkimmett 都给出了很好的答案。唯一将他们分开的是亚历克斯在尼尔之前就回答了。谢谢两位!

0 投票
1 回答
626 浏览

ios - CloudKit fetchUserRecordIDWithCompletionHandler 完成代码未调用?

我正在尝试使用 fetchUserRecordIDWithCompletionHandler 从 CloudKit 获取当前用户 ID,但是当我运行代码时,完成处理程序被跳过。

因此,userID 的值保持不变nil,因此查询会因此而引发异常