Почему методы Apple, принимающие NSError**
, не объявлены как NSError * __autoreleasing *
?
Примечания к выпуску ARC кажется, предполагает, что они должны быть (?).
Например, все подпрограммы в NSFileManager.h. Но на самом деле я не вижу каких-либо заголовков Apple, использующих то, что указано в Примечаниях к выпуску перехода на ARC:
and the method declaration would typically be:
-(BOOL)performOperationWithError:(NSError * __autoreleasing *)error;
Может ли это быть из-за поддержки устаревших баз кода, где все объявления NSError * error = nil;
будут подразумевать strong
, и поэтому, если Apple поместит туда __autoreleasing
, это приведет к тому, что временная локальная переменная __autoreleasing
будет создаваться каждый раз? Единственное, о чем я могу думать.