如何在核心数据中过滤可选的NSMutableSet多对多关系?

时间:2016-08-16 09:13:25

标签: ios swift core-data

我有两个具有多对多关系的核心数据实体,让我们说具有以下属性的用户和项目实体。

extension Project {
    @NSManaged var project: String?
    @NSManaged var projectId: String?
    @NSManaged var user: NSMutableSet?
}

extension User {
    @NSManaged var address: String?
    @NSManaged var dateOfBirth: String?
    @NSManaged var email: String?
    @NSManaged var firstName: String?
    @NSManaged var lastName: String?
    @NSManaged var phoneNumber: String?
    @NSManaged var userId: String?
    @NSManaged var username: String?
    @NSManaged var projects: NSMutableSet?
}

现在,我有一个表视图,它显示了项目的所有列表,并具有用户过滤项目的功能 这是我的过滤功能。

func getFilteredProjects() {
    //projectArray holds all project data
    //loggedInUser is an user instance
    filteredProjectArray = projectArray.filter({ $0.user!.containsObject(loggedInUser) }) 

    projectTableView.reloadData()
}

在上面的代码中,我不得不强行打开可选的用户设置 如果用户设置为nil(可能发生这取决于删除规则),我担心使用那段代码会破坏我的应用程序。
我的问题是,有没有办法过滤可选的NSMutableSet而不用力展开它?

0 个答案:

没有答案