4

別のStackOverflowの投稿によると、drainメッセージはAppleのみの呼び出しです。

NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
NSLog (@"Hello");
[pool drain];
return 0;

交換drainしても大丈夫releaseですか?Linux(現時点ではUbuntu)で実行するObjective-Cアプリケーションを移植しようとしています。始める前から諦めるべきですか?(私はすでにNSURLConnection仕事をしようとして問題を抱えています)

4

1 に答える 1

4

Appleのドキュメントからdrain

[...]このメソッドはreleaseと同じように動作します。[...]

したがって、自動解放プールを空にすることは、必然的にそれを割り当て解除することを意味します。drain私の意見では、Appleは混乱を招くだけなので、非推奨にする必要があります。

だが:

特別な考慮事項:
ガベージコレクション環境でrelease は、操作は不要です。したがって、コレクターにヒントを与えたくない場合を除いてdrain、ガベージコレクション環境用にコンパイルされる可能性のあるコードで使用することが重要です。

于 2009-09-27T12:50:07.300 に答える