Storing and iterating over multiple NSError pointers
I want to propose a differently structured code, that especially will be easier to adapt for more objects. 

NSArray *objects = @[object1, object2, object3];
NSMutableArray *errors = [NSMutableArray array];

[objects enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
    NSError *error;
    [obj methodWithError: &amp;error];
    if(error){
        [errors addObject: @{@"error":error,@"object":obj}];
    }
}];


Now you can iterate over all errors and examine them along with the object the error occurred on. 

[errors enumerateObjectsUsingBlock:^(NSDictionary *errorDict, NSUInteger idx, BOOL *stop) {
    NSError *error = errorDict[@"error"];
    id object = errorDict[@"object"];
    if(…){
        //add an appropriate test
    }
}];




you can't add the errors into an array upfront, as 

NSError *error1;


will result into a nil-object for the variable error1. NS(Mutable)Arrays can't handle nil objects. Same for dictionaries.
On the other hand my solution allows adding the errors, as it only add them once an existing objects is assigned to the variable error.