保存tableview单元格

时间:2019-12-13 06:51:54

标签: swift xcode

我尝试使用核心数据保存表格视图的数据,但是我无法使其与设置代码的方式一起使用。

    let cell = tableView.dequeueReusableCell(withIdentifier: "taskCell", for: indexPath) as! TaskCell

    cell.taskText.text = tasks[indexPath.row].name
    cell.taskPriority.image = tasks[indexPath.row].priority

    return cell

任务在哪里

    var tasks = [Task]()

它看起来像这样

class Task {
    var name = ""
    var priority = UIImage()
    var priorityInt = Int()

    convenience init(priority: UIImage, name: String, priorityInt: Int) {
        self.init()
        self.name = name
        self.priority = priority
        self.priorityInt = priorityInt

PriorityInt用于更改确定任务优先级的图像。

1 个答案:

答案 0 :(得分:0)

Leja,“从CoreData中的表视图保存数据”没有任何意义,但我将尝试通过谈论两件事来回答。

保存CoreData

使用任务模型创建数据模型。 然后,您将最终使Task类像这样从NSManagedObject继承:

import CoreData
import Foundation

class TaskMO: NSManagedObject {

    @NSManaged var name: String?
    @NSManaged var priority: Int?

}

您将使用NSManagedObjectContext通过以下代码保存您的实体:

guard let task = NSEntityDescription.insertNewObjectForEntityForName("Task", inManagedObjectContext: managedObjectContext) as? TaskMO else { return 

do {
    try managedObjectContext.save()
} catch {
    fatalError("Failed to save: \(error)")
}

在TableView或CollectionView上显示本地数据

    let managedObjectContext = …
    let tasksFetch = NSFetchRequest(entityName: "Task")

    do {
        let fetchedTasks = try managedObjectContext.executeFetchRequest(tasksFetch) as! [TaskMO]
    } catch {
        fatalError("Failed to fetch tasks: \(error)")
    }

对于大量数据,您甚至可以使用NSFetchedResultsController

您可以阅读有关的更多信息,示例和说明也有据可查。 apple documentation here