0
我知道當我們使用自定義線程來創建對象並使用它們時。我在iOS應用程序中嘗試了下面的代碼,它沒有拋出任何錯誤。爲什麼?爲什麼不使用autorleasepool塊不會拋出錯誤?
-(void)Sample{
NSLog(@"Sample");
NSString *temp= @"asdfasdf";
NSArray *tempAray = [NSArray arrayWithObject:temp];
NSLog(@"Print it %@%s",temp,__FUNCTION__);
}
-(void)viewDidLoad{
[super viewDidLoad];
[NSThread detachNewThreadSelector:@selector(Sample) toTarget:self withObject:@"NSSstint"];
// Do any additional setup after loading the view, typically from a nib.
}
編輯:
我明白的事實,我會泄漏內存,如果我已經通過自動釋放消息的對象。 我用下面的方法實現對樣品的方法調用: 即使是現在我沒有收到以下消息:
*** __NSAutoreleaseNoPool(): object 0x167ba4 autoreleased without a pool in place - just leaking ***
-(void)Sample{
NSLog(@"Sample");
NSString *temp=[[NSString alloc] initWithFormat:@"Sample"];
NSArray *tempAray = [NSArray arrayWithObject:temp];
[tempAray retain];
[tempAray autorelease];
[temp autorelease];
NSLog(@"Print it %@%s",temp,__FUNCTION__);
}
謝謝H2CO3。我更新了我的問題。你能否澄清爲什麼我沒有收到你所提到的信息? – Krishnan 2012-08-07 05:27:34