Iphone obj-c串联整数问题

Iphone obj-c串联整数问题,iphone,objective-c,cocoa,concatenation,Iphone,Objective C,Cocoa,Concatenation,我是obj-c的新手,我正在尝试编写一个简单的iAction,其中一个按钮单击后会更改其标签。它适用于图像背景和静态字符串,但在以下情况下崩溃: int i = (arc4random()%90); NSString *lab = [NSString stringWithFormat:@"%d", i]; [sender setText:lab]; 为什么??提前付款 编辑:这是整个方法 -(IBAction) toggleUIButtonImage:(id)sender{ NSStr

我是obj-c的新手,我正在尝试编写一个简单的iAction,其中一个按钮单击后会更改其标签。它适用于图像背景和静态字符串,但在以下情况下崩溃:

int i = (arc4random()%90);
NSString *lab = [NSString stringWithFormat:@"%d", i];
[sender setText:lab];
为什么??提前付款

编辑:这是整个方法

-(IBAction) toggleUIButtonImage:(id)sender{
    NSString *img = @"bulldog-cute-tom-bancroft.jpg";
    NSString *imgSel = @"kitten-cute-tom-bancroft.jpg";
    UIImage *unselectedImage = [UIImage imageNamed:img];
    UIImage *selectedImage = [UIImage imageNamed:imgSel];
    if ([sender isSelected]) {
        [sender setBackgroundImage:unselectedImage forState:UIControlStateNormal];
        [sender setSelected:NO];
    }else {
        [sender setBackgroundImage:selectedImage forState:UIControlStateSelected];
        [sender setSelected:YES];
    }

    int i = (arc4random()%90);
    NSString *lab = [NSString stringWithFormat:@"%d", i];
    [sender setTitle:lab forState: UIControlStateNormal];

} 

这不是随机int或int2str转换。这是设置按钮文本的方式。 使用此选项,它应该可以:

[sender setTitle: lab forState: UIControlStateNormal]; 
(当然,如果发送方实际上是一个UIButton)

编辑:


此外,还建议将sender强制转换为UIButton*(或您希望对该方法作出响应的任何其他特定类),以确保使用正确的类方法。

您正在尝试设置UIButton的标题。 为此,您需要使用
setTitle:forState:
而不是
setText

[sender setTitle:lab  forState:UIControlStateNormal];
UIButton参考:

编辑: 如果
sender
是一种id类型,请将其更改为UIButton,如下所示:

UIButton *b = (UIButton *)sender;
或者简单地更改方法签名,如:

-(IBAction) toggleUIButtonImage:(UIButton *)sender

您应该通过界面生成器设置对按钮的引用,如下所示:

@属性(强,非原子)UIButton*buttonName;

或者从iAction方法获取按下按钮的按钮,使用:

UIButton*buttonName=(UIButton*)发送方;

无论哪种方式,都可以使用以下语法设置UIButton标题的文本:
[按钮名称设置标题:实验室状态:uicontrol状态正常];

你能发布错误和bedug日志输出吗?发布你的整个按钮点击方法,让我看看^^。还可以打印错误日志并删除断点,这样我们也可以查看一下。您可能希望在该方法的第一行中添加从发件人到UIButton的强制转换。uuaaw!泰,伙计!:)我来自网络,这对我来说还是有点奇怪EH:D
-(IBAction) toggleUIButtonImage:(UIButton *)sender