3

とるAppleのメソッドがNSError**宣言されていないのはなぜNSError * __autoreleasing *ですか?

ARCリリースノートへの移行は、それらが(?)であるべきであることを示唆しているようです。

たとえば、NSFileManager.hのすべてのルーチン。しかし、ARCリリースノートへの移行に記載されている内容を使用しているAppleヘッダーは実際には表示されません

and the method declaration would typically be:

-(BOOL)performOperationWithError:(NSError * __autoreleasing *)error;

NSError * error = nil;これは、すべての宣言が意味するレガシーコードベースをサポートしているためでしょうか。strongそのため、Apple__autoreleasingがそこに入れると、__autoreleasing毎回一時的なローカル変数が作成されます。私が考えることができる唯一のもの。

4

1 に答える 1

5

Objective-Cオブジェクトへのダブルポインターは、 LLVM仕様__autoreleasingで指定されているとおりに暗黙的に指定されます。

于 2013-02-20T19:21:12.227 に答える