我尝试使用核心数据保存表格 View 的数据,但是我无法让它按照我设置代码的方式工作。
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 用于更改确定任务优先级的图像。
最佳答案
Leja,“从 CoreData 中的 TableView 保存数据”没有意义,但我会尝试通过谈论两件事来回答。
节省 CoreData
使用任务模型创建数据模型。 然后你最终将拥有继承自 NSManagedObject 的 Task 类,如下所示:
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 .
关于swift - 保存表格 View 单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59317486/