所以我从 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/