EXC_BAD_ACCESS NSXMLParser с использованием делегата на ARC - PullRequest
0 голосов
/ 05 декабря 2011

У меня есть этот код в парсере DidendElement.

   [self setImageThumbnailLink:[NSMutableString stringWithString:imageLink]];
    if([_delegate respondsToSelector:@selector(receiveImageLink:withParser:withParameter:)]){

        [_delegate receiveImageLink:[self imageThumbnailLink] withParser:nil withParameter:parameterPassed];
    }        
    else{            
        [NSException raise:NSInternalInconsistencyException
                    format:@"Delegate doesn't respond to receiveItems:"];
    } 

Когда код достигает [_delegate receiveImageLink: [self imageThumbnailLink] withParser: nil withParameter: parameterPassed];

EXC_BAD_ACCESS происходят.Я пробовал, что с ним не так, пытаясь сделать каждый параметр ноль.И EXC_BAD_ACCESS происходит, когда [self imageThumbnailLink] передается делегату.Как я могу решить это?Я использую [nonatomic, strong] для imageThumbnailLink.это NSMutableString.Если я использую этот код (не используя переменную): он работает нормально.

 [_delegate receiveImageLink:@"http://www.....flower.jpg" withParser:nil withParameter:parameterPassed];

Спасибо

Сообщение об ошибке в консоли: только текущий язык: auto;в настоящее время target-c (gdb).

Это трассировка стека: error message (no error message in console)

1 Ответ

0 голосов
/ 05 декабря 2011

Отсутствие полного сообщения об ошибке здесь лучше всего предположить:

Возможно, [self imageThumbnailLink] неверно или параметр пройден. Попробуйте разделить оператор на две части для отладки: Пример:

NSLog(@"parameterPassed: %@", parameterPassed);
NSString *imageLink = [self imageThumbnailLink];
NSLog(@"imageLink: %@", imageLink);
[_delegate receiveImageLink:imageLink withParser:nil withParameter:parameterPassed];

Как правило, при попытке отладить ошибку, разделяющую компоненты составного оператора, это хороший первый шаг.

...