使用核心数据swift ios将实体的所有属性获取到tableview中的行中的标签
Posted
技术标签:
【中文标题】使用核心数据swift ios将实体的所有属性获取到tableview中的行中的标签【英文标题】:Get all attributes of an entity to a label in row in tableview with core data swift ios 【发布时间】:2017-12-17 12:13:10 【问题描述】:我已经为名为@987654327@ 的实体定义了两个属性名称和描述,我想在表格视图的一行中检索第一个标签中的名称和第二个标签中的描述
我做了什么
我现在检索到的东西
我希望将这些所有值打印在每个单元格中,而不是每次都重复单个单元格
let context = appDel.persistentContainer.viewContext
let results = try! context.fetch(request)
for result in results as! [NSManagedObject]
let formNameIs = result.value(forKey: "formName") as? String
let formDescIs = result.value(forKey: "formDesc") as? String
cell.titleLabel.text = formNameIs!
cell.descLabel.text = formDescIs
print(formNameIs!, formDescIs!)
【问题讨论】:
显示您的代码。 @pbasdf 更新代码 【参考方案1】:您似乎误解了 tableView 的工作原理。您不需要遍历所有对象;您应该为该行找到正确的对象(如 indexPath
参数中所示),并使用该对象的属性值设置标签。
所以,让results
数组成为视图控制器的属性:
var results : [NSManagedObject] = []
在viewDidLoad
中,从CoreData 填充您的results
数组:
...
// presumably you have code to define the fetch request
let context = appDel.persistentContainer.viewContext
results = try! context.fetch(request)
在tableView的numberOfRowsInSection
方法中,返回results
中对象的个数
return results.count
并且在 tableView 的 cellForRowAt:
方法中,使用 indexPath
参数从 results
数组中找到正确的对象:
let result = results[indexPath.row]
let formNameIs = result.value(forKey: "formName") as? String
let formDescIs = result.value(forKey: "formDesc") as? String
cell.titleLabel.text = formNameIs!
cell.descLabel.text = formDescIs
print(formNameIs!, formDescIs!)
【讨论】:
你会回答这个***.com/questions/47881304/…以上是关于使用核心数据swift ios将实体的所有属性获取到tableview中的行中的标签的主要内容,如果未能解决你的问题,请参考以下文章
Swift 从实体(核心数据)获取特定的 NSManagedObject
如何使用神奇的 Records Library Swift 获取属性中的所有值