ARC で (NSError **)
を引数にとる method を NSInvocation
で呼び出す場合、
以下のように __autoreleasing
を明記する必要がある。
__autoreleasing
がないと、(strong 扱いされるため) 余計に release されて死ぬらしい。
__autoreleasing NSError * error;
NSError * __autoreleasing * errorRef = &error;
[invocation setArgument: &errorRef atIndex: 2];