私はに慣れていないので、ARCなしObjectivce-C
での正しい方法は何だろうと思っていました。私のライブラリに次を返すメソッドがあるとしましょう:memory management
static library
NSString*
- (NSString *) foo
{
...
NSString *result = [[NSString alloc] initWithString:@"bar"];
return [result autorelease];
}
私が理解している限りでは、foo
割り当てられているので、NSString
それを解放する(または解放するためにキューに入れる)必要もあります。NSString
は戻り値なので、私にできることはautorelease
それだけです。これにより問題が発生します。ライブラリがコマンドラインツールで使用されている場合、開発者は、メイン内でメモリを消費して複数回呼び出す必要があることを知るfoo
必要があります。これは、メモリ管理をライブラリからアプリに委任しているように思えますが、これはひどいことのように思えます。これを行うためのより良い方法はありますか?それとも、開発者が必要としていることをどうにかして明らかにすることができますか?@autoreleasepool
foo
@autoreleasepool
foo
@autoreleasepool