Помогите с CoreData сделать NSPredicate - Рекурсивный поиск
Я использую CoreData для проекта iPhone, и я застрял, пытаясь создать предикат.
Моя основная сущность данных
Folder
parent - Point to the folder class parent, can be null and is one to one.
secure - An enum that holds the security type.
У меня проблема в том, что я пытаюсь сделать так, чтобы я не показывал папки, которые находятся в защищенной папке.
Прямо сейчас мой предикат выглядит примерно так.
NSPredicate *pred = [NSPredicate predicateWithFormat:@"secure = $@ AND (parent = %@ OR parent.secure = %@)",[NSNumber numberWithInteger:kNoSecurity], [NSNull null], [NSNumber numberWithInteger:kNoSecurity]];
Это работает найти, когда у меня есть только цепочка, как папка 1 -> папка 2 и папка 1 безопасна. Но если у меня есть папка 1 -> папка 2 -> папка 3 (папка 2 и папка 3 не защищены). Folder3 возвращается, потому что я проверяю только один уровень. Есть ли способ получить предикат для проверки всей цепочки?
Благодарю.