gpt4 book ai didi

swift - 如何防止 for 循环每秒触发 10 次以上?

转载 作者:可可西里 更新时间:2023-11-01 02:04:23 27 4
gpt4 key购买 nike

我已经使用一组信息创建了对 OnRadar 的请求以创建地理围栏。但是,我创建时间/延迟的尝试并没有阻止 for 循环每秒触发十次以上,这是 API 无法处理的。

func setUpGeofences(){

for object in geofenceArray{

let params: [String: Any] = [
"description": object.name,
"tag": object.tag,
"externalId": object.externalID,
"type": "circle",
"coordinates": [object.lat, object.long],
"radius": object.radius,
]

let headers = ["Authorization: Key"]
let rq = Alamofire.request("https://www.onradar.com/api/v1/geofences", method: .post, parameters: params, encoding: URLEncoding.httpBody, headers: headers)
.responseJSON { response in

print(response.result.value)
print(response.result.error)
}
}
}

这是我的 for 循环函数。我看过几个例子,但当我试图将它们应用到我自己的工作中时,我没有成功。此外,一旦它为我的数组中的每个位置创建了地理围栏,我将如何停止循环运行?

最佳答案

这是请求完成后执行下一个操作的简单方法:

geofenceArray: [Geo] 更改为 geofenceArray 的任何类型

func setUpGeofences(geofenceArray: [Geo]) {
if let object = geofenceArray.first {
let params: [String: Any] = [
"description": object.name,
"tag": object.tag,
"externalId": object.externalID,
"type": "circle",
"coordinates": [object.lat, object.long],
"radius": object.radius,
]

let headers = ["Authorization: Key"]
let rq = AlamofireRequest("https://www.onradar.com/api/v1/geofences", method: .post, parameters: params, encoding: URLEncoding.httpBody, headers: headers)
.responseJSON { response in

print(response.result.value)
print(response.result.error)
// do the next one
setUpGeofences(geofenceArray: Array(geofenceArray.dropFirst()))
}
}
}

不能保证低于每秒 10 次,但目前这可能已经足够了。

关于swift - 如何防止 for 循环每秒触发 10 次以上?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44334817/

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