填充 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的主要内容,如果未能解决你的问题,请参考以下文章

漫水填充算法填充图案 (C++)

漫水填充算法填充图案 (C++)

技巧 Pandas 数据填充

帆软表格填一个值,其他表格自动填充该值

Excel从数值高到底填充不同颜色(按行排序),第一个填充一种颜色,第二种填充另一个颜色,第三种填充?

扫描线填充算法与种子填充算法的区别是啥