Example: The -save: method of NSManagedObjectContext is declared like this:
- (BOOL)save:(NSError **)error
Since NSError is already a class, and passing a pointer would actually have the effect of modifying this object inside the implementation of -save:, what's the point of passing a pointer to a pointer here? What's the advantage/sense?
Usage example:
NSError *error;
if (![managedObjectContext save:&error]) {
    // Handle the error.
}