gpt4 book ai didi

ios - Swift:如何通过完成处理程序(闭​​包)的引用存储对象数组?

转载 作者:行者123 更新时间:2023-11-30 12:34:39 24 4
gpt4 key购买 nike

有一个API回调返回Json格式结果。简而言之,需求是我需要不断调用这个 API,并不断对其返回的结果实现广度优先搜索。

想象它是一张有许多节点和连接的 map 。每次我调用节点的 API 调用时,它都会返回其连接节点的列表。我现在需要的只是一个数组,它保存所有已访问过的节点,以避免重复访问。

但这是 Swift,我对它很陌生。我使用 Array 并在完成处理程序中作为 inout 传递。但有一个错误:转义闭包只能通过值显式捕获 inout 参数,这意味着我不能这样做。

现在你可能会问为什么我的数组必须通过引用存储。因为 API 调用是异步的,这意味着我必须等到它返回才能继续进行广度优先搜索,这意味着我必须通过引用传递此数组才能进行递归。

我还有哪些其他解决方案?

最佳答案

Swift 数组是值类型(不是引用类型),因此您需要将数组存储在对象中。然后,您可以将该对象传递给处理程序,并在对象内设置数组内容,该对象作为闭包中的引用进行携带。

关于ios - Swift:如何通过完成处理程序(闭​​包)的引用存储对象数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43019314/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com