сохраняя при возвращении? - PullRequest
2 голосов
/ 25 марта 2010

Должен ли я сохранять ответные данные, которые я возвращаю

// 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 ]

6 голосов
/ 25 марта 2010

Поскольку имя метода не начинается с init, new или copy, dataFromTurbine должно возвращать автоматически выпущенный экземпляр NSData.(Что уже верно для responseData)

В этом случае вызывающий метод становится владельцем и при необходимости должен сохранять.

0 голосов
/ 25 марта 2010

Одним словом, нет.

Объект NSData, который вы получаете от NSURLConnection, автоматически высвобождается, поэтому вы должны сохранять / освобождать его, только если вам нужно сохранить его. В противном случае он будет автоматически разблокирован для вас при следующем проходе цикла выполнения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...