사실, TableView에 데이터를 설정해야하는데, 얻는 문자열은 WebService에서 POST 요청을하는 함수에 있습니다. 첫 번째 부분은 잘 작동TableView Swift 3의 값을 함수에 설정하십시오.
func request(){
let parameters: Parameters = [
"action": "*",
"key":"*": "*"
]
Alamofire.request("my_url", method: .post, parameters: parameters, encoding: JSONEncoding.default).responseJSON { response in
switch response.result {
case .success(let JSON):
print("Validation Successful")
print(response.result.value)
let response = JSON as! NSDictionary
let userId = response.object(forKey: "Data")!
let data = userId as! NSArray
for item in data { // loop through data items
let obj = item as! NSDictionary
print("Obj: \"\(obj["KeyName"] as! String)\"")
self.names.append(obj["KeyName"] as! String)
}
print(userId)
case .failure(let error):
print(error)
}
}
}
:
override func viewDidLoad() {
names.append("Data 1")
names.append("Data 2")
names.append("Data 3")
self.request()
MyTable.delegate = self
MyTable.dataSource = self
super.viewDidLoad()
}
는 self.request()
기능에 나는 잘 작동 POST 요청이
names.append("imac")
names.append("Macbook")
names.append("iphon")
그리고 print("Obj: \"\(obj["KeyName"] as! String)\"")
콘솔 문자열에 저를 보여줍니다 만, TableView에서 self.names.append(obj["KeyName"] as! String)
을 설정하면 첫 번째 부분 만 데이터가 표시되지 않습니다. 잘못된 것입니까?
나는 비동기이기 때문에 그런 것 같아요. 그래서 새로운 이름을 얻으면'MyTable.reloadData()'를해야한다. 또한, 대문자 (예 : MyTable' =>'myTable')로 시작하는 var의 이름을 지정하지 마십시오. – Larme
감사합니다. 안부입니다. –