【发布时间】:2011-08-22 15:37:16
【问题描述】:
我有这个从不同的类调用的方法:
-(void)artworkInfo:(NSNumber *)pos{
[image setImage:(UIImage *)[[mainDelegate.mapAnnotations objectAtIndex:(NSUInteger)pos]image]];
[pos release];
}
我在所有三行都设置了调试器停止点。调试时,在调用方法之后和调用setImage 之前,将鼠标悬停在方法定义中的pos 和setImage 行中会显示从方法调用发送的正确值。但是,当我在调试器中前进时,下一行 [image setImage...] 运行并悬停在两个 poss 上显示“超出范围”,因此应用程序不会显示它应该显示的图像。为什么会这样?
编辑:好吧,看来我的问题可能只是如何在类中调用该方法,因为即使是硬编码的值也不会在该方法中生成图像,但是如果我复制并将该行粘贴到viewDidLoad:,就可以了。为什么该行在viewDidLoad: 中可以工作,但在它现在所在的方法中调用时却不行?
【问题讨论】:
标签: objective-c cocoa-touch methods scope argument-passing