NSArray's `indexOfObject:` method has the following documentation:
*Starting at index 0, each element of the array is sent an `isEqual:` message until a match is found or the end of the array is reached.*

And NSString's `isEqualToString:` method documentation has the following note:
*When you know both objects are strings, this method is a faster way to check equality than `isEqual:`*

You're correct that you can't mutate objects whilst enumerating them but you can stop the enumeration as soon as you've found the one you're looking for and then remove it.

It's not a big deal in this case, as the favourite documents array is unlikely to grow very large (although that's not true of sites which could be tens of thousands). However it's always good to know exactly what's happening under each convenience method that Cocoa Touch gives us.