从数组填充TableView中的单元格并将数据保存在单元格中

时间:2015-11-11 12:05:16

标签: ios swift uitableview

我需要将一个数组加载到TableView的仅第一个单元格中,这意味着我希望将数据放在一行中。后记我需要保存这些数据,以便在关闭并重新打开应用程序后保留这些数据。 这是我的TableView类,它在每个单元格中加载数组的数据,而只是在第一个单元格中加载:

import UIKit

class ScoreboardViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {
    let info = ["\(name01) ", "\(name02) ",  "\(name03) ", "\(name04) ", "\(myCategory) ", "\(displayTime)"]



    @IBOutlet weak var myTv: UITableView!

    override func viewDidLoad() {
        super.viewDidLoad()

        self.navigationItem.setHidesBackButton(true, animated: false)
        myTv.delegate = self
    }
    func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return info.count
    }
    func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
        //Allocate a table view cell
        let cell = myTv.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath) as! UITableViewCell
        cell.textLabel?.text = info[indexPath.row]
        return cell
    }



    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

}

由于我不在我的应用中使用Core Data,最好将所有内容保存在文件中还是使用NSUserDefaults?

2 个答案:

答案 0 :(得分:0)

您应该划分数据的数据和视觉输出 - 因此,下次启动时保存应用的数据不应该与UITableView有任何关联 - 使用一些不错的模式,例如MVVM或{{ 1}}。您可以使用某些存储机制,如MVCCoreData作为键值数据,基于SQL,输出到文件以及许多其他存储机制。 在你的情况下,我认为NSUserDefaults已经足够了。

答案 1 :(得分:0)

如果您只想存储Array,请使用NSArray并使用方便的方法writeToFile和arrayWithContentsOfFile存储它。

对于数量有限的数据,您也可以滥用NSUserDefaults

对于大量数据(假设您不知道行数是否无关紧要),我强烈建议用户使用Core Data。