gpt4 book ai didi

ios - 单元格数据未显示在 UITableView 中?

转载 作者:行者123 更新时间:2023-11-30 13:17:02 25 4
gpt4 key购买 nike

知道我如何使用 Alamofire 发出此 GET 请求 - 准确获取我想要返回的内容 - 将信息传递给 func tableView(tableView: UITableView - 填充并返回每个单元格,但我的表格不会显示加载的数据?

从 AlamoFire promise 的返回中,我调用 self.refresh() ,它在主线程中调用它:

func refresh() {

dispatch_async(dispatch_get_main_queue(),{
self.tableView.reloadData()
});

--有任何想法吗?这简直让我抓狂。提前感谢您的任何想法或解决方案!

import UIKit
import Alamofire
import MapKit

class ListViewController: UIViewController, UISearchBarDelegate, CLLocationManagerDelegate, UITableViewDelegate, UITableViewDataSource {

var tools = [Tool]()


@IBOutlet weak var searchBar: UISearchBar!


@IBOutlet weak var tableView: UITableView!

let locationManager = CLLocationManager()
var currentLat: CLLocationDegrees = 0.0
var currentLong: CLLocationDegrees = 0.0


override func viewDidLoad() {
super.viewDidLoad()

self.tableView.delegate = self
self.tableView.dataSource = self
searchBar.delegate = self

self.tableView.rowHeight = UITableViewAutomaticDimension
self.tableView.estimatedRowHeight = 116
self.tableView.registerClass(ToolTableViewCell.self, forCellReuseIdentifier: "ToolTableViewCell")

self.locationManager.delegate = self
self.locationManager.requestAlwaysAuthorization()

self.locationManager.requestWhenInUseAuthorization()

// if CLLocationManager.locationServicesEnabled() {
locationManager.delegate = self
locationManager.desiredAccuracy = kCLLocationAccuracyNearestTenMeters
locationManager.startUpdatingLocation()

}

func locationManager(manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
let locValue:CLLocationCoordinate2D = manager.location!.coordinate
// print("locations = \(locValue.latitude) \(locValue.longitude)")
let location = locations.last! as CLLocation
currentLat = location.coordinate.latitude
currentLong = location.coordinate.longitude

}

func searchBarSearchButtonClicked(searchbar: UISearchBar)
{
searchbar.resignFirstResponder()
tools = []

let defaults = NSUserDefaults.standardUserDefaults()
let userid: Int = defaults.objectForKey("toolBeltUserID") as! Int

let searchTerm = String(searchBar.text!)
print(searchTerm)


Alamofire.request(.GET, "http://localhost:3000/tools/search", parameters: ["keyword": searchTerm, "latitude": currentLat, "longitude": currentLong,
"user": userid]) .responseJSON {response in
if let JSON = response.result.value {
print("\(JSON)")

for i in 0 ..< JSON.count {

let owner = JSON[i].objectForKey("owner")
let tool = JSON[i].objectForKey("tool")
let title = tool!["title"] as! String!
let ownerId = owner!["id"] as! Int!
let distanceToTool = JSON[i].objectForKey("distance") as! Double
var description: String

if let des = tool!["description"] as? NSNull {
description = ""
} else {
description = (tool!["description"] as? String!)!
}

let myTool = Tool(title: title!, description: description, ownerId: ownerId!, distance: distanceToTool)


self.tools.append(myTool)

}

// dispatch_async(dispatch_get_main_queue(), {

self.refresh()

// })

} else {
print("Sent search term, but no response")
}
}

}

func refresh() {

dispatch_async(dispatch_get_main_queue(),{
self.tableView.reloadData()
});

}

func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return 1
}

func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
print(tools.count)
return tools.count
}

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {


let cellIdentifier = "ToolTableViewCell"
let cell = tableView.dequeueReusableCellWithIdentifier(cellIdentifier, forIndexPath: indexPath) as!ToolTableViewCell
let tool = tools[indexPath.row]

if(indexPath.row==0){
cell.title?.text = tool.title
// print(tool.title)
// cell.toolListDescription?.text = tool.description
cell.ownerId = tool.ownerId
// print(tool.ownerId)
// print(tool.distance)
// cell.distance?.text = "\(tool.distance)mi"
}

print(cell)
return cell
}
}

最佳答案

确保您在属性检查器中设置了重用标识符!在我的例子中它是'ToolTableViewCell'

谢谢!

关于ios - 单元格数据未显示在 UITableView 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38112499/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com