2010-03-25 111 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对象是自动释放的,所以只有在需要保留的情况下才应该保留/释放它。否则,它会在运行循环的下一个循环中自动释放。

相关问题