【发布时间】:2019-03-30 04:10:22
【问题描述】:
我想保存响应 json 数组并使用 userdefault 检索 json 数组,直到现在我只能在 func fetchdata() 中显示所有 json 数组,当我尝试在 viewdidLoad 中检索时,我只得到一个响应 json 数组。 我想在 viewdidLoad 中获取所有响应 json 数组。 如何实现?
这是我的代码:
import UIKit
import SwiftyJSON
import Alamofire
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
fetchData()
let tabledata = UserDefaults.standard.object(forKey: "id") // here i retrieve data and only get one response
print("table:\(tabledata)")
}
func fetchData(){
Alamofire.request("https://jsonplaceholder.typicode.com/users", encoding: URLEncoding.default).responseJSON {
response in
switch response.result {
case .success(let value):
let json = JSON(value)
print(json)
for item in json.array!{
let address = item["address"]["city"].string
let id = item["id"].stringValue
let userName = item["username"].string
UserDefaults.standard.set(id, forKey: "id")
let tabledata = UserDefaults.standard.object(forKey: "id") // here i retrieve data and get all response for id
print("table:\(tabledata)")
}
case .failure(let error):
print(error)
}
}
}
}
当我在视图中检索 didLoad 时,我只得到响应:
table:Optional(10)
当我在 fetchData 函数中检索时,我得到了所有响应:
table:Optional(1)
table:Optional(2)
table:Optional(3)
table:Optional(4)
table:Optional(5)
table:Optional(6)
table:Optional(7)
table:Optional(8)
table:Optional(9)
table:Optional(10)
我想获取 viewDidLoad 或 viewWillAppear 的 fetchData 函数中的所有响应
【问题讨论】:
-
首先,你不应该把它保存到
UserDefaults
标签: arrays swift alamofire swifty-json userdefaults