I'm going nuts here. For some reason I can't find a single, complete example of how to use the objectsPassingTest: function of NSSet (cocoa). Before anyone points me to the pages about blocks, I've seen those. The example given only shows how to declare the function, not the block that operates it, and when I tried their example with my own code it didn't work. I just want to see a couple of working examples of how the function might be used, then I'll be able to work it out for myself.
Example of NSSet's objectsPassingTest function please?
11.2k Views Asked by Ash At
2
There are 2 best solutions below
0

I never used blocks. But I guess this is how it works.
NSSet *set = [NSSet setWithObjects:@"FooBar", @"Foo", @"Bar", @"Baz", nil];
NSSet *fooSet = [set objectsPassingTest:^(id obj, BOOL *stop) {
BOOL testResult = NO;
NSString *objStr = (NSString *)obj;
if ([objStr hasPrefix:@"Foo"]) {
testResult = YES;
}
if ([objStr hasSuffix:@"Bar"]) {
testResult = YES;
}
return testResult;
}];
This will create a set with @"FooBar", @"Foo" and @"Bar", because only those pass the test (ie return YES).
Here is a quick example. Hope it helps.