私は ARC を使用しており、autoreleasepool がその中のすべての要素にリリースを送信することを知っています。次の例を考えてみましょう。
-(NSString*)someMethod{
NSString *string1=@"sample text inside string 1"; // string1 add to main autorelease pool
NSString *string2=[[NSString alloc] init]; // string2 retain count is 1
string2=@"sample text inside string 2"; // just assigning
return string1;
}
-(void)viewDidLoad{
NSString *returnedString=[self someMethod];
}
1.私の質問は、someMethodでstring2を完全に解放するにはどうすればよいですか?
2. viewDidLoad メソッドから string1 を完全に解放するにはどうすればよいですか?
注:ARCを使用しています
someMethod で @autoreleasepool を使用すると、string1 と string2 の両方が破棄されると思います。そうじゃない?
そして、someMethod で @autoreleasepool を使用した場合の効果はどうなりますか
-(NSString*)someMethod{
@autoreleasepool{
NSString *string1=@"sample text inside string 1"; // string1 add to main autorelease pool
NSString *string2=[[NSString alloc] init]; // string2 retain count is 1
string2=@"sample text inside string 2"; // just assigning
}
return string1;
}