Appleのこのような例を与える傾向がある:私はこのようにそれを行うことができれば、私はそれをはるかに読みやすいと論理を見つけるだろうARC所有者修飾子の位置は重要ですか?
NSError __strong *error = nil;
または
-(BOOL)performOperationWithError:(NSError * __autoreleasing *)error;
を:
__strong NSError *error = nil;
-(BOOL)performOperationWithError:(__autoreleasing NSError**)error;
クイックテストでは、コンパイラが自分の書き方について不平を言っていないことが明らかになりました。とにかくそれをやっているのですか、それともこれのように書くのはいいですか?
このケースでは*明らかに重要ではありませんが、それを正しい場所に置いてください。例えば。 'const T * *'は 'T * const *'と同じではありません。なぜなら、コンパイラが配置を修正するだけなので、なぜ '__autoreleasing'が間違っているのですか? – CRD
コンパイラが修正するわけではありません。この場合、彼らはすべて同じように有効であり、すべて同じことを意味します。あなたが正しいのは、 'const'の場合に違いがあります。ここでは、そうではありません。それは誤った類推です。 –