如何在NSFetchedResultsController的部分中添加其他信息

时间:2016-01-14 06:52:07

标签: ios uitableview core-data nsfetchedresultscontroller nsfetchrequest

我在UITableView中有自定义部分,它有一个UIImageView和一个UILabel。使用NSFetchedResultsController可以根据剖面模型设置图像。假设部分模型有imageNamesectionTitle。根据当前的实现,我得到<NSFetchedResultsSectionInfo>作为一个对象。是否可以通过section对象中的自定义对象获取。

由于

2 个答案:

答案 0 :(得分:2)

我想我知道你的意思。您创建了一个NSFetchedResultsController对象,将某个实体作为sectionNameKey的参数传递。因此,您的自定义部分基于此实体。这就是'section model'的意思,我想。

如果要访问该部分中的对象,可以使用以下代码:

//create array for demonstration purposes
var exampleArray = [[YourEntityType]]()

for sectionInfo in fetchedResultsController.sections! {

//this will give you an array with all the objects in the section            
let objectsForSection = sectionInfo.objects as! [YourEntityType]

//this will add the array above to another array, so you will have access to all the objects of all the sections      
exampleArray.append(objectsForSection)   
}

您也可以使用keyValue编码,如下所示:

//create sectionInfo variable, where 2 is the number of the section (the third section in this example
let sectionInfo = fetchedResultsController.sections![2]

//access the needed entity object from the sectionInfo
let exampleVariable = (sectionInfo.objects as! AnyObject).valueForKeyPath("yourEntity") as! YourEntityType

//access the needed attribute object from the sectionInfo
let anotherExampleVariable = (sectionInfo.objects as! AnyObject).valueForKeyPath("yourEntity.yourAttribute") as! YourAttributeType

答案 1 :(得分:0)

一旦知道与该部分关联的对象,就可以确定要显示的图像和标签文本。

确保您的对象(可能是与获取的结果控制器提取的主实体的关系)提供必要的信息。