尝试一些核心数据,几乎在那里但不完全。使用两个UILabels
获取此简单表视图。
问题是这个
一行行下面的abc
预期行为为123
保存数据
var data = [NSManagedObject]()
func saveData(rowData: String) {
//1 Get record
let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
let managedContext = appDelegate.managedObjectContext!
//Entity
let entity = NSEntityDescription.entityForName("Tasks", inManagedObjectContext: managedContext)
let person = NSManagedObject(entity: entity!,insertIntoManagedObjectContext:managedContext)
//3
person.setValue(rowData, forKey: "engineerName")
person.setValue(rowData, forKey: "projectDescription")
//4
var error: NSError?
if !managedContext.save(&error) {
println("Could not save \(error), \(error?.userInfo)")
}
//5
data.append(person)
}
deinit {
self.saveData(engineerField.text)
self.saveData(currentProjectField.text)
}
将其加载到表格视图
var data = [NSManagedObject]()
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return data.count
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
var cell = self.tableView.dequeueReusableCellWithIdentifier("CustomRow") as! CustomRow
//Get record from core data
let person = data[indexPath.row]
println("Row Data = \(person)")
cell.nameLabel.text = person.valueForKey("engineerName") as? String
cell.projectLabel.text = person.valueForKey("projectDescription") as? String
return cell
}
核心数据
答案 0 :(得分:2)
在saveData
方法中,您为engineerName
和projectDescription
NOT 保存了不同数据的相同数据。您需要传入两个不同的字符串(例如engineerNameString
和projectDescriptionString
)并将不同的字符串保存在您的人员管理对象中。
基于代码的示例代码:
func saveData(engineerNameString: String, projectDescriptionString: String) {
//1 Get record
let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
let managedContext = appDelegate.managedObjectContext!
//Entity
let entity = NSEntityDescription.entityForName("Tasks", inManagedObjectContext: managedContext)
let person = NSManagedObject(entity: entity!, insertIntoManagedObjectContext:managedContext)
//3
person.setValue(engineerNameString, forKey: "engineerName")
person.setValue(projectDescriptionString, forKey: "projectDescription")
//4
var error: NSError?
if !managedContext.save(&error) {
println("Could not save \(error), \(error?.userInfo)")
}
//5
data.append(person)
}
答案 1 :(得分:0)
究竟应该发生什么。视觉重复是因为您设置了cell.nameLabel.text
和cell.projectLabel.text
,并且由于内部engineerName
和projectDescription
包含相同的值,因此两个标签都显示相同的数据。
仍然只有两个单元格,都显示相关数据。
您必须为engineerName
和projectDescription
存储不同的数据 - 您会发现一切都按预期工作。