0

アプリケーションに1つのオブジェクトを保持したいので、リリースしません。

@implementation MyClass

    static MyClass *sharedInstance = nil;
    + (MyClass *)sharedInstance {
        if (!sharedInstance) {
            sharedInstance = [[super alloc] init];
        }
        return sharedInstance;
    }
@end

によって単一のオブジェクトを取得でき[MyClass sharedInstance]ます。これは非ARCモードでうまく機能します。

ただし、ARCモードに変更すると、オブジェクトは解放されます。

4

1 に答える 1

3

なぜリリースされると思いますか?ARCによって追跡される静的変数に割り当てました。

于 2013-03-07T07:20:46.517 に答える