当从tableviewcontroller中的核心数据填充单元格行时,如何跳过显示某些条目?

时间:2014-10-08 20:36:14

标签: swift ios8 xcode6

对于我正在处理的应用,我已将几个项目保存到我的coredata模型中。

我的目的是根据某些属性是否为真,有选择地将它们打印到tableview。

给出CoreData中的项目的示例:

/////////////////////

1 - 姓名:Joe,显示:true

2 - 名字:莎莉,显示:假

3 - 姓名:Bob,显示:false

4 - 名字:Jess,显示:true

/////////////////////

我只希望我的表视图显示到显示为true的单元格 所以在4个条目中只有Joe和Jess会列在我的tableview中

到目前为止,我只知道如何打印出每一件物品。使用表视图数据源协议

感谢帮助一个菜鸟!

2 个答案:

答案 0 :(得分:1)

我会做这样的事情:

//此处您的实体称为“用户”

var myUsers = [Users]()

var fetchRequest = NSFetchRequest(entityName: "Users")
let Predicate = NSPredicate(format: "display = %@", true)

fetchRequest.predicate = Predicate
// maybe Sort?    
var sortDescriptor = NSSortDescriptor(key: "UserID", ascending: true)
var sortDescriptors = [sortDescriptor]
fetchRequest.sortDescriptors = sortDescriptors

myUsers = context!.executeFetchRequest(fetchRequest, error: nil) as [Users]

//在TableView(cellForRowAtIndexPath)

中使用它们
var myuser = myUsers[indexPath.row] as Users

答案 1 :(得分:0)

您应该使用NSFetchedResultsController来显示核心数据对象 表格视图。

然后通过设置谓词

来简单地限制显示的项目
NSPredicate(format: "display == YES")

在获取的结果控制器上。