gpt4 book ai didi

ios - 如何使用 json 中的可变数组填充我的 tableview

转载 作者:行者123 更新时间:2023-11-30 13:23:55 24 4
gpt4 key购买 nike

所以我从 json 格式的 url 获取数据。我试图在我的表格 View 中显示数据,但是,尽管感觉很简单,但我不知道该怎么做。

class CompanyModel {

func getJSON() {

let companyArray: NSMutableArray = NSMutableArray()

let requestURL: NSURL = NSURL(string: "http://localhost/Companies/JSON.php")!
let urlRequest: NSMutableURLRequest = NSMutableURLRequest(URL: requestURL)
let session = NSURLSession.sharedSession()
let task = session.dataTaskWithRequest(urlRequest) {
(data, response, error) -> Void in

let httpResponse = response as! NSHTTPURLResponse
let statusCode = httpResponse.statusCode

if (statusCode == 200) {
print("Everyone is fine, file downloaded successfully.")

do{

let json = try NSJSONSerialization.JSONObjectWithData(data!, options:.AllowFragments)



if let companies = json["companies"] as? [[String: AnyObject]] {

for company in companies {

if let name = company["name"] as? String,
let phoneNumber = company["phone_number"] as? String,
let website = company["website"] as? String,
let email = company["email"] as? String,
let address = company["address"] as? String

{
let company = CompanyModel()

company.name = name
company.phoneNumber = phoneNumber
company.website = website
company.email = email
company.address = address
}
companyArray.addObject(company)
print(companyArray)
}
}
} catch {
print("Error with Json: \(error)")
}

}
print(companyArray) <- array is populated
}
print(companyArray) <- array is empty
task.resume()
}
}

我知道我以前做过......我猜在 viewDidLoad() 中我会调用 CompanyModel().getJSON() 这会获取数据,然后将其存储在一个空数组中,但我对如何做感到茫然。

我无法声明 NSarray 变量并直接将其数据存储在变量中,然后填充 TableView 。尽管如此,我希望这能解释我想要实现的目标。

最佳答案

首先更改函数以返回您的公司数组:

func getJSON() -> NSMutableArray {

}

在 for 循环结束时返回公司数组

for company in companies {

}

填充数组后,返回此 block 内的数组:

dispatch_async(dispatch_get_main_queue(), { 

return companyArray

})

task.resume() 返回数组之后:

return companyArray

从任何你想调用这个类并获取数组的地方:

获取类的引用

Let companyModal = CompanyModel()

在任何有 TableView 和类的地方,比如在 viewDidLoad 中,您应该首先有 NSMutableArray

var arraySource = NSMutableArray()

viewDidLoad中:

arraySource = companyModal.getJSON()

并在 tableView 中显示数据:

Mytableview.reloadData()

关于ios - 如何使用 json 中的可变数组填充我的 tableview,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37445069/

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