回来时保留?

时间:2010-03-25 13:39:25

标签: iphone objective-c

我应该保留我要返回的responseData

// 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;
}

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

2 个答案:

答案 0 :(得分:6)

由于方法名称不是以initnewcopy开头,因此dataFromTurbine应返回自动释放的NSData实例。 (现在对于responseData已经是这样了)

然后调用方法拥有所有权,并且如果需要应该保留。

答案 1 :(得分:0)

总之,没有。

从NSURLConnection获取的NSData对象是自动释放的,因此只有在需要保留它时才应保留/释放它。否则,它将在下一次运行循环时自动为您释放。