如何从Core Data加载我的数据以在tableView中显示它?

时间:2015-02-19 11:01:41

标签: ios uitableview swift core-data save

我是使用CoreData的新手 - 所以我尝试设置一个应用程序,用户可以通过按钮将一些文本保存到CoreData并加载回来在tableView中显示它。我想出了如何保存数据,但我无法弄清楚如何正确加载数据。必须在存储新信息和View加载时加载。

class ViewControllerExercises: UIViewController {

@IBOutlet weak var textField: UITextField!

@IBAction func tappedAddButton(sender: AnyObject) {
    var appDel:AppDelegate = (UIApplication.sharedApplication().delegate as AppDelegate)
    var context:NSManagedObjectContext = appDel.managedObjectContext!

    var newExercises = NSEntityDescription.insertNewObjectForEntityForName("Exercises", inManagedObjectContext: context ) as NSManagedObject
    newExercises.setValue(textField.text,forKey:"exercises")

    context.save(nil)
}

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

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


func tableView(tableView: UITableView?, cellForRowAtIndexPath indexPath: NSIndexPath?) -> UITableViewCell? {
    let cell = tableView!.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath!) as UITableViewCell

    var toDoItem:NSDictionary = exercises.objectAtIndex(indexPath!.row) as NSDictionary
    cell.textLabel!.text = toDoItem.objectForKey("exercises") as? String

    return cell
}

1 个答案:

答案 0 :(得分:1)

尝试这种方式:

let toDoItem = exercises[indexPath.row]

cell.textLabel?.text =  toDoItem["exercises"]!

如需更多参考,请查看此答案How to make a table from a dictionary with multiple content types in Swift?

可能会对你有帮助。