UIButton 单击事件的奇怪问题

pcwe2002 2012-06-10 10:03:26
定义一个自定义的button

@interface ImageButton : UIButton {
NSString * _gotoImage;
}

@property(nonatomic,retain) ImageButtonData *data;
- (id) initWithButtonData:(ImageButtonData *)buttonData;
- (void)buttonClicked:(id)sender;
@end

实现文件
- (id) initWithButtonData:(ImageButtonData *)buttonData {

data = buttonData;

_gotoImage = [NSString stringWithFormat:@"123%@",data.gotoImage];

// set button frame
[super initWithFrame:data.rect];

[self addTarget:self action:@selector(buttonClicked:) forControlEvents:UIControlEventTouchUpInside];
return self;
}

- (void)buttonClicked:(id)sender {
NSLog(@"sendInfo:%@",_gotoImage);
}
@end


当单击Button时,程序运行到NSLog(@"sendInfo:%@",_gotoImage);中出现错误
Thread1: program recieved signal "EXE_BAD_ACCESS"

不解,求教!
...全文
393 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
ex_impression 2012-06-17
  • 打赏
  • 举报
回复
如果你用了ARC,就可以了。如果没有arc,是要先retain到。
ex_impression 2012-06-17
  • 打赏
  • 举报
回复
你要先retain,
_gotoImage = [[NSString stringWithFormat:@"123%@",data.gotoImage]retain];\
_0筱筱0_ 2012-06-12
  • 打赏
  • 举报
回复
应该是已经release了... 你可以断点到那一看就知道了
Snake_Jay 2012-06-10
  • 打赏
  • 举报
回复
_gotoImage 已经被release
ixfly 2012-06-10
  • 打赏
  • 举报
回复
_gotoImage = [NSString stringWithFormat:@"123%@",data.gotoImage];
改成
_gotoImage = [[NSString alloc] initWithFormat:@"123%@",data.gotoImage];试试。有可能buttonData 已经被你手动release了。

29,028

社区成员

发帖
与我相关
我的任务
社区描述
主要讨论与iOS相关的软件和技术
社区管理员
  • iOS
  • 大熊猫侯佩
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧