我正在使用 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;
}