Об использовании NSError

Зачастую пользуешься функциями, которые возвращают параметр NSError *error в виде &error. Я не мог никак понять, как же пользоваться этим, пока не перечитал несколько постов на эту тему.

Оказывается, для того, чтобы проверить, есть ли вообще error, прежде чем выводить, нужно при инициализации задать еще nil для него. А для того, чтобы проверить error на наличие достаточно просто писать if(error). Это возможно благодаря особенностям класса NSError.

NSError *error = nil;
NSString *urlString = [NSString stringWithFormat:@"http://yandex.ru"];
    NSLog(@"Eval urlString=%@", urlString);
    NSURL *url = [NSURL URLWithString:urlString];
    NSURLRequest *urlRequest = [NSURLRequest requestWithURL:url];
    [NSURLConnection sendSynchronousRequest:urlRequest returningResponse:&response
        error:&error];
    if (error) {
        NSString *rusErrorMsg = NoServerConnectionMsg;
        msg = [NSString stringWithFormat:@"Ошибка:%@", rusErrorMsg];
        [appDelegate showResultViewWithText:msg fromView:self.view withSpeed:ResultViewSpeed];
        return;
    }

Leave a Reply

Your email address will not be published. Required fields are marked *