我在解析器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。通过尝试使每个参数为零,我已经尝试了它的错误。当[self imageThumbnailLink]传递给委托时,会发生EXC_BAD_ACCESS。 我怎么解决这个问题? 我对imageThumbnailLink使用[nonatomic,strong]。它是NSMutableString。 如果我使用此代码(不使用变量):它工作正常。
[_delegate receiveImageLink:@"http://www.....flower.jpg" withParser:nil withParameter:parameterPassed];
谢谢
控制台中的错误消息: 只要 当前语言:auto;目前objective-c(gdb)。
这是堆栈跟踪:
答案 0 :(得分:0)
这里缺少完整的错误消息是最好的猜测:
可能[self imageThumbnailLink]
很糟糕或者是参数已过时。尝试将语句分成两部分进行调试:
例如:
NSLog(@"parameterPassed: %@", parameterPassed);
NSString *imageLink = [self imageThumbnailLink];
NSLog(@"imageLink: %@", imageLink);
[_delegate receiveImageLink:imageLink withParser:nil withParameter:parameterPassed];
通常,在尝试调试错误时,分离复合语句的组件是一个很好的第一步。