Iphone 您可以使用数组索引值作为谓词中的参数来筛选数组吗

Iphone 您可以使用数组索引值作为谓词中的参数来筛选数组吗,iphone,ios,nsarray,nspredicate,Iphone,Ios,Nsarray,Nspredicate,我想知道是否可以使用数组索引值过滤NSPredicate的NSArray,即 NSArray *completeArray = ...; NSArray *filteredArray = [completeArray filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"ANY (arrayIndex < 5) && (Other conditions here)"]; NSArray

我想知道是否可以使用数组索引值过滤NSPredicate的NSArray,即

NSArray *completeArray = ...;
NSArray *filteredArray = [completeArray filteredArrayUsingPredicate:[NSPredicate 
   predicateWithFormat:@"ANY (arrayIndex < 5) && (Other conditions here)"];    
NSArray*completeArray=。。。;
NSArray*filteredArray=[completeArray filteredArray使用谓词:[NSPredicate]
predicateWithFormat:@“任意(arrayIndex<5)&(此处的其他条件)”;

我正在使用核心数据,无法为对象使用主键或其他标识符。

使用
子数组WithRange:
然后过滤子数组

NSArray *subarray = [completeArray subarrayWithRange:NSMakeRange(0, 5)];
NSArray *filteredArray = [subarray filteredArrayUsingPredicate:[NSPredicate 
   predicateWithFormat:@"ANY (Other conditions here)"]

不,不是真的。通过使用
子查询
,你可能会得到一些非常粗糙的东西,但即使是我,谁知道做非常规的事情与谓词,认为这将是一个坏主意

您说您正在使用CoreData执行此操作。如果是这种情况,那么您的请求就没有意义,因为CoreData对排序没有任何作用。是的,您可以为获取请求指定排序描述符,但这些描述符在使用谓词之后才会应用。谓词处理的任何数据本质上都是无序的因此,要求在CoreData谓词中使用“数组索引值”不仅是对谓词系统的滥用,而且代表了对CoreData框架固有的误解


CoreData是无序的。任何你想要的排序,你都必须自己应用。

你关于核心数据而不是内容排序的评论是正确的。在我的情况下,数据是从核心数据中检索出来的,并用排序描述符排序到一个数组中。以后需要根据数组中的对象位置和其他条件进一步排序ons。@Rob好的,那么此时您并没有真正使用CoreData;当您想进一步减少集合时,内存中已经有了一个数组。这是一个非常重要的区别。是的,是的,但我只想说数据不能修改为存储索引等。无论如何,感谢您的帮助。谢谢,简单高效!