2010-03-25 145 views
2

我應該保留,我回到保留什麼時候返回?

// METHOD 
-(NSData *)dataFromTurbine:(NSString *)pathToURL { 

    NSURL *url = [[NSURL alloc] initWithString:pathToURL]; 
    NSURLRequest *request = [[NSURLRequest alloc] initWithURL:url]; 
    NSHTTPURLResponse *response = nil; 
    NSError *error = nil; 
    NSData *responseData = [NSURLConnection sendSynchronousRequest:request 
               returningResponse:&response 
                  error:&error]; 

    [request release]; 
    [url release]; 
    return responseData; 
} 

的responseData。

// CALLED 
NSData *newData = dataFromTurbine(kTurbineDataPath); 
[doSomething newData]; 
+2

如果您使用的是Xcode,請使用Build&Analyze,這對您有很大的幫助。 – bddckr 2010-03-25 13:57:06

+0

謝謝,我會這樣做的。 – fuzzygoat 2010-03-25 14:20:58

回答

6

由於方法名稱不以init,newcopy,dataFromTurbine開頭,應該返回一個自動釋放的NSData實例。 (現在對於響應數據已經如此)

調用方法然後擁有所有權,並且如果需要,應該保留。

+0

非常感謝Rengers,我被混淆了,再次感謝。 – fuzzygoat 2010-03-25 14:21:59

0

總之,沒有。

從NSURLConnection獲得的NSData對象是自動釋放的,所以只有在需要保留的情況下才應該保留/釋放它。否則,它會在運行循環的下一個循環中自動釋放。

相關問題