填充 TableViewController
Posted
技术标签:
【中文标题】填充 TableViewController【英文标题】:Populate TableViewController 【发布时间】:2014-10-14 11:02:50 【问题描述】:我是 Swift 新手,我没有使用 Objective C 编码的经验。我面临的问题是,当我将类对象中的数据填充到表格视图单元格中时,所有单元格都显示相同的数据(最近访问的数组对象)。有人可以帮我吗? 谢谢。
class TableViewController: UITableViewController
var urgentCenters:Array<UrgentCenterDetails> = []
override func viewDidLoad()
super.viewDidLoad()
self.loadInfo()
println("Number of entries: \(self.urgentCenters.count)")
// Do any additional setup after loading the view, typically from a nib.
override func didReceiveMemoryWarning()
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
override func numberOfSectionsInTableView(tableView: UITableView!) -> Int
return 1;
override func tableView(tableView: UITableView!, numberOfRowsInSection section: Int) -> Int
//println("Number of rows \(urgentCenters.count)")
return self.urgentCenters.count
override func tableView(tableView: UITableView!, cellForRowAtIndexPath indexPath: NSIndexPath!) -> UITableViewCell!
let cellId = "cell"
var cell = tableView.dequeueReusableCellWithIdentifier(cellId) as? UITableViewCell
if nil==cell
cell = UITableViewCell(style: UITableViewCellStyle.Value1, reuseIdentifier: cellId)
if let ip = indexPath
cell!.textLabel.text = urgentCenters[indexPath.row].title
return cell
func loadInfo()
// Append data to urgentCenters data
var center = UrgentCenterDetails()
var title:String
title = "Penn's Landing"
center.setCenterDetails(title)
urgentCenters.append(center)
title = "Liberty Bell"
center.setCenterDetails(title)
urgentCenters.append(center)
【问题讨论】:
每个人都是新来的 swift;-)
你在哪里填充 urgentCenters
在 loadInfo() 函数中
如果urgentCenters 是硬编码字符串数组,则同样的代码可以工作
loadInfo
中没有循环 - 如何将多个条目放入数组?
使用追加功能
【参考方案1】:
您的问题是您只创建了一个 UrgentCenterDetails
对象并将其多次添加到数组中。因为只有一个对象,所以当你改变它的属性时,你会影响数组的所有元素(因为它在所有元素中都是同一个对象)。
你应该有 -
func loadInfo()
// Append data to urgentCenters data
var title:String
title = "Penn's Landing"
center.setCenterDetails(title)
urgentCenters.append(center)
center = UrgentCenterDetails()
title = "Liberty Bell"
center.setCenterDetails(title)
urgentCenters.append(center)
【讨论】:
以上是关于填充 TableViewController的主要内容,如果未能解决你的问题,请参考以下文章