そのため、オブジェクトがいつ自動解放されるかについて少し混乱しています。これまでのところ、私が「所有者」でない場合は所有者になることを理解しています。しかし、どのような場合に私は所有者にならないのでしょうか? 便利なメソッドを使用してオブジェクトを作成するときは? これらすべての便利なメソッドがどこから来ているのか、どのように作成するのかわかりません。
質問する
90 次
1 に答える
1
通常、alloc
+ 自動解放されないオブジェクトを作成するには、初期化子を使用します。代わりに、静的メソッドを使用して自動解放されたインスタンスを取得します。例:
NSString* string1;
NSString* string2;
@autoreleasepool{
string1= [NSString stringWithString: @"Hello"];
string2= [[NSString alloc] initWithString: @"Hello"];
}
// string1 isn't alive, string2 is alive
シングルトンにも注意を払う必要があります。シングルトンの場合、それらは自動解放されませんが、所有していません。多くの場合、メソッドの名前から、シングルトンを返すかどうかがわかります (例:sharedInstance
またはのようなものmainThread
)。
于 2013-07-21T13:53:57.823 に答える