Always read the retention value as delta. So:
1. NSArray *array = @[@0, @1];
array has +0 to save the counter (which it saved, and then autoreleased about the creation basically does not matter, and, in fact, it may not have been saved and autoreleased at all - NSString *foo = @"foo"; has exactly the same + 0, but implementation details are not saving / auto-advertising).
2. NSArray *array = [NSArray arrayWithObjects:@0, @1, nil];
Same as (1), but with a thumb.
NSArray *array = [[NSArray alloc] initWithObjects:@0, @1, nil];
array has a value of +1 to keep as much as possible. The only detail you need to know is that in order for your code responsibilities for array be rejected, this object must be release d or autorelease d. Was it created with +1 account retention ... does it have an internal retention rate of 42 ... regardless of whether it was saved 5 times and auto-implemented 4 .... they all have nothing to do with your code.
source share