我以前从未使用NSPredicate,因此请耐心等待。我有一个数组,其布尔键为“isChecked”。我想过滤布尔值设置为“YES”的数组,任何想法我该怎么做,再加上是否有任何对这样的查询方法的引用,这些方法很好用。NSPredicate过滤器
谢谢
我以前从未使用NSPredicate,因此请耐心等待。我有一个数组,其布尔键为“isChecked”。我想过滤布尔值设置为“YES”的数组,任何想法我该怎么做,再加上是否有任何对这样的查询方法的引用,这些方法很好用。NSPredicate过滤器
谢谢
//NSArray * myArray is your array
//containing your objects that each have an isChecked property
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"isChecked == YES"];
NSArray *filteredArray = [myArray filteredArrayUsingPredicate:predicate];
// filteredArray is the new array that only contains your checked items
干杯
Upvoted,因为伟大的思想家都认为。相同的变量名称和一切。 :) –
我曾试过,它没有奏效,但当我试过NSPredicate *谓词= [NSPredicate predicateWithFormat:@“isChecked =='YES'”];它确实,想知道有什么区别? – kforkarim
这很奇怪。我实际上使用了这个确切的谓词,它在我的应用程序中起作用。 –
首先您创建NSPredicate
实例。在这种情况下,我们将使用-initWithFormat:
。
NSPredicate *predicate = [[NSPredicate alloc] initWithFormat:@"isChecked == YES"];
然后我们会使用NSArray
的-filteredArrayUsingPredicate:
方法来获取匹配谓词其所有对象的一个NSArray。
NSArray *filteredArray = [originalArray filteredArrayUsingPredicate:predicate];
你在这里泄漏你的谓词。如果使用类方法[NSPredicate predicateWithFormat:],则不必担心谓词的内存管理。 –
现在是2011年。我假设现在大多数人都在使用ARC或了解基本的内存管理。继续前进。 –
LOL我正在管理旧的应用程序,甚至还没有开始使用ARC。我很快就会赶上,我希望。 –
你一起使用这个核心数据,或者您想要一个子集符合您的条件你只是有一个'NSArray'实例? –
@craig我有一个NSArray的实例,我想要一个符合我的标准的子集。谢谢。 – kforkarim