1

アプリにシングルトン オブジェクトがあります。

+ (id)shared {
    @synchronized(self) {
        if (sharedDownloadFirstData == nil)
            sharedDownloadFirstData = [[self alloc] init];
    }
    return sharedDownloadFirstData;
}

- (id) init {
    if (self = [super init]) {

    }
    return self;
}

そして、それを実現する必要があるかどうかを知りたいです(私はARCを使用していません)。そのために私は使用しています:

[[DownloadFirstData shared] release];

このオブジェクトを解放する必要がありましたか? オブジェクトには、解放する必要がある配列やその他のものがあります。

4

2 に答える 2

1

シングルトンをリリースする場合、シングルトンを使用しても意味がありません。通常、アプリが終了するまで同じオブジェクトが必要なため、シングルトンが作成されます。アプリのライフ サイクルの最後に、アプリに関連するすべてのメモリが解放されます。

alloc release が頻繁に必要な場合は、標準的なアプローチを使用してください。シングルトンが大量のメモリを必要とする場合は、より適切に作成することを検討する必要があります。

とにかく、[[DownloadFirstData 共有] リリース]; 動作します。

于 2013-04-25T18:26:31.633 に答える