Question

I've got an NSArrayController that contains a few elements. These elements has got a few attributes like 'name', 'interformation' etc.

What i want is simply to find an element in the NSArrayController which has the name attribute set to, lets say, 'Mads'.

Since efficiency isn't an great issue here i would just do a linear search by iterating over all the elements in the NSArrayController while checking if the 'name' attribute is 'Mads'.

But I can't seem to get an NSIterator from the NSArrayController, so I'm wondering if there's another way to do this?

Any help is appreciated

Was it helpful?

Solution

How about using the content?

ie

// ac is an NSArrayController*
for (MyObject *mob in ac.content) {
    if ([mob.name isEqualToString:@"something"]) {
        // found
        break;
    }
}

OTHER TIPS

Get the arrangedObjects, which is an array, and either iterate on that or use filteredArrayUsingPredicate:.

That's assuming that it wouldn't be more appropriate to set the filterPredicate of the array controller. If you do go that way, then arrangedObjects will contain only the matching objects.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top