EXC_BAD_ACCESS在ARC上使用委托的NSXMLParser

EXC_BAD_ACCESS在ARC上使用委托的NSXMLParser

问题描述:

我在解析器DidendElement中有此代码。EXC_BAD_ACCESS在ARC上使用委托的NSXMLParser

[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:[自imageThumbnailLink] withParser:无withParameter:parameterPassed];

发生EXC_BAD_ACCESS。我尝试了使每个参数为零来试图解决它有什么问题。当[self imageThumbnailLink]传递给委托时,会发生EXC_BAD_ACCESS。 我该如何解决这个问题? 我使用[nonatomic,strong]为imageThumbnailLink。它是NSMutableString。 如果我使用此代码(不使用变量):它工作正常。

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

感谢您在控制台

错误消息: 只有 当前语言:汽车;目前是Objective-C(gdb)。

这是堆栈跟踪: error message (no error message in console)

+0

请从控制台发布确切完整的错误消息。 – zaph

+0

我只是一个noob这个东西,但也许你可能会尝试在第一行(stringWithString而不是stringWithFormat)中使用[self setImageThumbnailLink:[NSMutableString stringWithString:imageLink]]。 –

+0

已经用stringWithString改变它。但仍然是EXC_Bad_access。 –

这里缺乏完整的错误消息是最好的猜测:

大概[self imageThumbnailLink]接触不良或parameterPassed。尝试语句分成两个进行调试: 例:

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

一般试图调试错误分离复合语句的组成部分时,是一个良好的开端。

+0

imagelink是在控制台中打印的,绝对不是零。并且仍然得到exc_bad_access :(在控制台中没有错误信息,只是这个,当前语言:auto;当前是objective-c (gdb),exc_bad_access指向某个地址 –

+0

parameterPassed是好的,因为当我硬编码imageLink [_delegate receiveImageLink:@“http://www.....flower.jpg”withParser:nil withParameter:parameterPassed]; 它工作正常 所以我的猜测是,imageLink已经发布通过弧? –

+0

也许尝试stringWithString而不是stringWithFormat时设置图像链接在第一行? –