也许是一个罕见的问题,但我正在学习 Swiftui。我正在尝试使用 XMLMapper 解析来自 Alamofire 的 XML 结果,该结果在 Storyboard 中按预期工作。我可以在 UITableviewController 中显示数据。
问题是:如何在 SwiftUI 中将 XMLMapper 对象的结果显示到表视图(列表)?
在我在情节提要模式下使用的代码下方。
提前致谢!帕特里克
import UIKit
import Alamofire
import XMLMapper
import SwiftKeychainWrapper
class AllLines: UITableViewController {
let redirector = Redirector(behavior: .doNotFollow)
let requestUrl = "https://\(KeychainWrapper.standard.string(forKey: "KeychainServer") ?? ""):443"
var Rows: [Row] = []
override func viewDidLoad() {
super.viewDidLoad()
GetLines()
}
// MAP CARD DETAILS //
class Result: XMLMappable {
var nodeName: String!
var error: String?
var rowset: Rowset?
required init?(map: XMLMap) {}
func mapping(map: XMLMap) {
error <- map.attributes["error"]
rowset <- map["ROWSET"]
}
}
class Rowset: XMLMappable {
var nodeName: String!
var rows: [Row]?
required init?(map: XMLMap) {}
func mapping(map: XMLMap) {
rows <- map["ROW"]
}
}
class Row: XMLMappable {
var nodeName: String!
var name: String?
var hostname: String?
var lineid: String?
required init?(map: XMLMap) {}
func mapping(map: XMLMap) {
name <- map["NAME"]
hostname <- map["HOSTNAME"]
lineid <- map["LINEID"]
}
}
//MAP CARD DETAILS//
func GetLines() {
class GetAllPersonsQuery: XMLMappable {
var nodeName: String!
var sql: String?
init() {}
required init?(map: XMLMap) {}
func mapping(map: XMLMap) {
sql <- (map["sql"], XMLCDATATransform())
}
}
let getallpersonsquery = GetAllPersonsQuery()
getallpersonsquery.nodeName = "query"
getallpersonsquery.sql = "select name, hostname, lineid from line"
AF.request(requestUrl, method: .post, parameters: getallpersonsquery.toXML(), encoding: XMLEncoding.default)
.redirect(using: redirector)
.responseXMLObject { (response: DataResponse<Result, AFError>) in
switch response.result {
case .success(let value):
debugPrint(value)
print("AF-Success")
self.Rows = value.rowset?.rows ?? []
self.tableView.reloadData()
debugPrint(response)
case .failure(let error):
print("AF-Error")
print(error)
}
}
}