问题标签 [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 投票
1 回答
294 浏览

ios - 在 iOS 中缓存异步响应

如何将完成处理程序的响应保存在静态变量中?在示例代码中

它说// Do something with items我想将它保存items在一个静态变量中,以便任何人都可以调用getMyItems来获取这些项目。我该怎么做?我的意思是客观c意义上的静态变量,其中值被记住。

图片上面的片段在 class 内Dog。并且 classPaper将需要使用这些项目,以便getMyItems从 class 内部调用Paper。我希望不必将项目保存在核心数据中。

现在我认为我的解决方案涉及static NSArray *items在块之外声明。但是那么其他方法将如何访问它呢?这甚至是一个好的解决方案吗?

下面的“解决方案”会因为我self在块内调用而导致内存泄漏吗?

0 投票
1 回答
6454 浏览

swift - 在 NSURLConnection 中的 Swift 中从 completionHandler 中获取数据

我正在尝试编写一个将执行异步 GET 请求并返回响应的函数(作为任何数据类型,但这里是作为 NSData)。

这个问题基于:How to use NSURLConnection completionHandler with swift

但我收到一个错误:

我已经尝试从completionHandler返回值,但它需要一个void返回,这让我想起了我希望在没有帮助的情况下解决这个问题......:D

我看过: How to use completionHandler Closure with return in Swift? 但这并不能真正回答我的问题。我的目标是从我的异步请求中获取数据,以便在我的代码中的其他地方使用。我是否应该在这个块中完成这个请求的所有工作,而不是把数据拿出来?

谢谢!

编辑

好的,所以我有一个我认为可能有用的选项,但对我来说似乎不合适。有人能告诉我这是否是实现我目标的最佳方式吗?

编辑 2 -> 响应撤消

谢谢,撤消。你的回答对我来说很有意义。这里有更多的谜题。我有一个类是我的 API 处理程序。我希望能够实例化该类,并在其上调用一个函数以从 API 获取数据。我宁愿通过一个 api 调用获取所有数据,而不是每次为我需要输出的每个值都进行单独调用,因为单个 API 调用包含我需要的所有数据,但这可能是另一个答案。这是代码:

感谢您花时间回答我的问题。我是 swift 新手,堆栈溢出非常有用!

0 投票
1 回答
1341 浏览

ios - 从自定义类管理 NSURLSession 的完成处理程序

我的应用程序的一部分涉及根据提供给用户的唯一代码为用户创建登录检查。为了使我的应用程序结构合理,我创建了一个网络助手类来处理所有网络操作。这是我如何从控制器类 (ViewController.m) 中调用我的助手类。

[[LoginNetworkHelper alloc] loginBasedOnPatientId:@"abc"];

我的 LoginNetworkHelper 类执行以下任务(LoginNetworkhelper.m)

所以我的基本问题是如何在我的完成处理程序NSURLSession和与我的登录视图相关联的控制器类之间进行通信。我需要根据从服务器返回的数据更改主视图上的某些内容,这些数据只能从异步运行的完成处理程序中访问。有没有更好的方法来管理所有网络任务,同时仍然能够引用调用它们的主控制器的对象。提前致谢

0 投票
0 回答
2406 浏览

ios - AFURLSessionManager downloadTaskWithRequest completionHandler 不是异步的

在使用 AFNetworking 库时,我遇到了一个问题,在使用 AFURLSessionManager downloadTaskWithRequest 的目标参数代码块异步将 JSON 数据下载到文件中后,我希望在其 completionHandler 块中异步执行其余操作。问题是 completionHandler 块似乎没有异步运行。

是否需要设置新的会话管理器和/或下载任务来完成此操作。是否有更好的方法来执行此操作,以便可以在 completionHandler 块中远离主线程执行操作。

想要完成此操作的原因是避免占用主线程,以防有大量数据需要分配给 self.googleResults 数组,或者更确切地说是在使用包含特定关键数据属性的自定义类的 for 循环中最终将作为元素添加到数组中。

这是到目前为止的代码......

0 投票
1 回答
234 浏览

ios - 模型、块和完成处理程序 Oh MY

我从头开始学习 iOS 编程。

我希望我的应用程序从网站中提取 XML。我在想,为了符合 MVC 模式,我应该有一个模型类,它只提供一种方法来完成它(也许让它也解析 XML 并返回一个数组)。

问题是我发现的所有教程都在视图和控制器的上下文中教授 NSURLSession - 所以编辑 appdelegate 或创建视图控制器等。

我从 Apples 文档中获得了以下方法,我目前在按下按钮时将它作为 IBAction 运行(因此我可以运行它并轻松测试它)。我想让它工作,然后把它放在它自己的类中:

我的直接问题是:

有人可以解释完成处理程序是如何工作的以及如何data离开那里吗?它正在工作,数据正在从网站上获取 xml 并将其记录在控制台上,但是将其复制到webData不起作用,它会编译但不会复制。(我仍在弄清楚为什么__block声明webData首先允许潜入那里!)

我更大的问题是,如果每个人都认为为这个过程创建一个单独的模型类的想法是个好主意。有没有更好的设计方法?

谢谢!

0 投票
2 回答
88 浏览

ios - 在 captureStillImageAsynchronouslyFromConnection 之后调用 void

我正在尝试运行void saveImageToLibrary何时

已经完成了。我该怎么办?

0 投票
2 回答
3574 浏览

uiview - 嵌套闭包不喜欢参数列表

UIView 需要根据自定义控件的完成处理程序更改警告标签:

最后的动画块在表单中显示错误。

如果我在完成关闭之外的某个地方调用它,它就可以工作。

0 投票
1 回答
1281 浏览

ios - Swift 中的完成处理程序错误

我正在尝试使用 Swift 中的完成处理程序创建自己的方法:

但是我在完成处理程序行上收到错误:

0 投票
1 回答
557 浏览

xcode - Sprite Kit runAction 延迟,奇怪的错误?

这是我第三次尝试解决 runAction 延迟完成的问题。

我已经做了一些测试并走到了这一步。我希望有人能告诉我是否有一些设置或其他设置会造成这种延迟。

我开始了一个新的精灵套件项目并添加了这个。它工作得很好。流畅的运动。

但是,当我将“英雄”节点和此代码添加到我现有的项目中时,它会在操作和完成之间停止一毫秒。

有没有人知道为什么?

0 投票
2 回答
783 浏览

ios - Trying to return a string from a response object inside a completion handler

}

trying to get my instagram accesstoken as a string so I can use it to download data in my swift viewcontroller file. I had to write simple auth in Objective C since it doesn't work for swift atm.