提取调用的 JSON 函数时复制数据
Duplicating data when fetching JSON function called
我的问题是我在 ViewDidLoad()
上有函数 getData()
,当我切换到另一个视图并返回到该视图时,它会再次加载与 tableView 上的数据重复的数据。
var items = [Items]()
func getData() {
Alamofire.request(url, method: .get).validate().responseJSON { response in
self.obj.helper.checkConnectivity()
switch response.result {
case .success(let value):
let json = JSON(value)
let jsonArray = json[].arrayValue
for json in jsonArray {
let item = Items.fromJson(json: json)
self.items.append(item)
}
case .failure(let error):
print(error)
}
self.tableView.reloadData()
}
}
struct Items {
var id: Int
var name: String
static func fromJson(json: JSON) -> Items {
return Items(
id: json["id"].intValue,
name: json["name"].stringValue,
}
}
只需插入一行即可清除数组:
...
let jsonArray = json[].arrayValue
self.items.removeAll()
for json in jsonArray {
...
或替换
for json in jsonArray {
let item = Items.fromJson(json: json)
self.items.append(item)
}
与
self.items = jsonArray.map { Items.fromJson(json: [=12=]) }
我的问题是我在 ViewDidLoad()
上有函数 getData()
,当我切换到另一个视图并返回到该视图时,它会再次加载与 tableView 上的数据重复的数据。
var items = [Items]()
func getData() {
Alamofire.request(url, method: .get).validate().responseJSON { response in
self.obj.helper.checkConnectivity()
switch response.result {
case .success(let value):
let json = JSON(value)
let jsonArray = json[].arrayValue
for json in jsonArray {
let item = Items.fromJson(json: json)
self.items.append(item)
}
case .failure(let error):
print(error)
}
self.tableView.reloadData()
}
}
struct Items {
var id: Int
var name: String
static func fromJson(json: JSON) -> Items {
return Items(
id: json["id"].intValue,
name: json["name"].stringValue,
}
}
只需插入一行即可清除数组:
...
let jsonArray = json[].arrayValue
self.items.removeAll()
for json in jsonArray {
...
或替换
for json in jsonArray {
let item = Items.fromJson(json: json)
self.items.append(item)
}
与
self.items = jsonArray.map { Items.fromJson(json: [=12=]) }