Помогите с 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 возвращается, потому что я проверяю только один уровень. Есть ли способ получить предикат для проверки всей цепочки?

Благодарю.

Ответы на вопрос(3)

Ваш ответ на вопрос