gpt4 book ai didi

arrays - Swift 3 - 无法使用数组发出 Alamofire 请求

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

希望有人能帮助我!现在正在研究这个问题一段时间。基本上我的问题是我无法使用 Alamofire 请求接收到的 UItableviewcontroller 中的数据。我想将请求放入 alamofire 请求中的结构中。最后我无法使用数组中放入的信息。看起来数组在函数之外保持为空。为此,我尝试关闭,我收到 viewDidLoad 请求中的表,但仍然无法在该请求之外使用它。

我在一个名为“Section:”的 swift 文件中有一个结构:

struct Mijnproducten {
var productname : String!
var productdesc : String!
var expanded : Bool!

init(productname: String, productdesc: String, expanded: Bool)
{
self.productname = productname
self.productdesc = productdesc
self.expanded = false
}
}

UitableviewController 看起来像这样:

我制作的数组:

var mijnproducten01 = [Mijnproducten]()

在有 alamofire 请求的基金下方:

func GetUserProperty(completion: @escaping ([Mijnproducten]) -> Void) {

Alamofire.request(URL_USER_PROPERTY, method: .post, encoding: JSONEncoding.default) .responseJSON(completionHandler: { response -> Void in
//getting the json value from the server productid, tagid, status, productimage
switch response.result {

case .success(let value):
let jsonArray = JSON(value)
print(value)
var Mijnproducten01 : [Mijnproducten] = []

for (index, dict) in jsonArray {
let thisObject = Mijnproducten(productname: dict["productname"].string!, productdesc: dict["productdesc"].string!, expanded: false )
Mijnproducten01.append(thisObject) }

completion(Mijnproducten01)

case .failure(let error):
print(error)
completion([])
}
self.tableView.reloadData()
})
}

在viedDidLoad中:

override func viewDidLoad() {
super.viewDidLoad()
GetUserProperty(completion: { data in
self.mijnproducten01 = data
print("yess", self.mijnproducten01)})
print("nooo",mijnproducten01)
}

yess 打印中有打印信息,但 nooo 中没有打印信息。

最终的目标是从数组中减去信息并在 tableCell 和 Header 中使用它。

当我将其放入 header 函数中时:

override func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
let header = tableView.dequeueReusableHeaderFooterView(withIdentifier: "expandableHeaderView") as! ExpandableHeaderView
header.customInit(Productname: mijnproducten01[Mijnproducten].productname, Productdesc: mijnproducten01[Mijnproducten].productdesc, section: section, delegate: self)
//print("print", mijnproducten01)
return header
}

我在以下位置收到错误:mijnproducten01[Mijnproducten].productname。

希望有人能帮忙!

最佳答案

谢谢!我找到了一个解决方案,也许不是最好的方法,但它有效。我在行中添加了一个额外的 UI 标签。该 UI 标签被分配的值也在 header 中使用。最后我让 UILabel 不可见。通过这种方式,我可以获得节中每一行的 wright 标题描述,我可以在 didSelectRow 中获得它!

关于arrays - Swift 3 - 无法使用数组发出 Alamofire 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45366932/

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