Ios 如何更新模型类? 我的视图控制器
这里我如何从模型类中获取数据 我的模特课 我的网络操作 我的问题是:在我的NetworkOperations类中,我正在更新模型类,并且希望使用viewController中的值How??如果我只是简单地重新加载self.tableView.reloadData(),它什么也不显示。还有其他方法使用它吗Ios 如何更新模型类? 我的视图控制器,ios,swift4,Ios,Swift4,这里我如何从模型类中获取数据 我的模特课 我的网络操作 我的问题是:在我的NetworkOperations类中,我正在更新模型类,并且希望使用viewController中的值How??如果我只是简单地重新加载self.tableView.reloadData(),它什么也不显示。还有其他方法使用它吗 let reponseValue = NetworkOpertions.sharedInstace.getMethod(){ (fetchValue)-> Void in if
let reponseValue = NetworkOpertions.sharedInstace.getMethod(){ (fetchValue)-> Void in
if fetchValue {
DispatchQueue.main.async {
self.actors = NetworkOpertions.sharedInstace.actors
self.tableView.reloadData()
}
}
非常感谢。这对我很有用。但有一个疑问是,这是一个好的编码实践吗?这是标准实践
DispatchQueue.main.async {
self.tableView.reloadData()
}
} catch {
print(error)
}
}
}
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return actors.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
guard let cell = tableView.dequeueReusableCell(withIdentifier: "ActorCell") as? ActorCell else { return UITableViewCell() }
cell.nameLbl.text = actors[indexPath.row].name
cell.DOBLbl.text = actors[indexPath.row].dob
cell.countryCell.text = actors[indexPath.row].country
if let imageURL = URL(string: actors[indexPath.row].image) {
DispatchQueue.global().async {
let data = try? Data(contentsOf: imageURL)
if let data = data {
let image = UIImage(data: data)
DispatchQueue.main.async {
cell.imgView.image = image
}
}
}
}
return cell
}
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
return 70
}
}
import UIKit
class Actors: Codable {
let actors: [Actor]
init(actors: [Actor]) {
self.actors = actors
}
}
class Actor: Codable {
let name: String
let description: String
let dob: String
let country: String
let height: String
let spouse: String
let children: String
let image: String
init(name: String, description: String, dob: String, country: String, height: String, spouse: String, children: String, image: String) {
self.name = name
self.description = description
self.dob = dob
self.country = country
self.height = height
self.spouse = spouse
self.children = children
self.image = image
}
}
//
import UIKit
class NetworkOpertions: NSObject {
// For Singletone class
static let sharedInstace = NetworkOpertions()
private override init() {
}
private var actors = [Actor]()
func getMethod(OnCompletion:@escaping (Bool)-> Void) {
guard let url = URL(string: FETCH_API_URL)else {return}
let session = URLSession.shared.dataTask(with:url){
(data,response,error) in
if let err = error {
print("We have an Api call error:\(err)")
return
}
if let data = data {
print("This is Data:", data)
do{
let decoder = JSONDecoder()
let downloadedActors = try decoder.decode(Actors.self, from: data)
self.actors = downloadedActors.actors
OnCompletion(true)
}
catch let err{
print(err.localizedDescription)
OnCompletion(false)
}
}
}
session.resume()
}
}
let reponseValue = NetworkOpertions.sharedInstace.getMethod(){ (fetchValue)-> Void in
if fetchValue {
DispatchQueue.main.async {
self.actors = NetworkOpertions.sharedInstace.actors
self.tableView.reloadData()
}
}