Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone Xcode中Objective-C中的IF语句_Iphone_Objective C_Xcode_If Statement - Fatal编程技术网

Iphone Xcode中Objective-C中的IF语句

Iphone Xcode中Objective-C中的IF语句,iphone,objective-c,xcode,if-statement,Iphone,Objective C,Xcode,If Statement,在Xcode中,我试图制作一个按钮来改变它的文本,相对于当前的文本。例如:如果按钮上显示“1”,然后按下,我希望文本变为“2”,并将“2”变为“3”,以此类推,下面是给我带来麻烦的代码片段: if (magicButton.titleLabel = @"1") { [magicButton setTitle:@"2" forState:UIControlStateNormal]; } Xcode在代码段的第一行给了我这个错误“分配到只读属性”。我对Objective-C和iPhone应

在Xcode中,我试图制作一个按钮来改变它的文本,相对于当前的文本。例如:如果按钮上显示“1”,然后按下,我希望文本变为“2”,并将“2”变为“3”,以此类推,下面是给我带来麻烦的代码片段:

if (magicButton.titleLabel = @"1") {
    [magicButton setTitle:@"2" forState:UIControlStateNormal];
}
Xcode在代码段的第一行给了我这个错误“分配到只读属性”。我对Objective-C和iPhone应用程序开发还很陌生,所以这可能是非常明显和简单的东西。如果是这样,请不要介意

如果有帮助的话,这里有一个建议


提前感谢。

'='用于分配,而'='用于比较。但是在字符串比较的情况下,您应该使用
isEqualToString
方法。大概是这样的:

if ([magicButton.titleLabel.text isEqualToString: @"1"]) {    
  [magicButton setTitle:@"2" forState:UIControlStateNormal];
}

另请注意,您应该获得
ui标签
文本
属性

“=”用于赋值,而“==”用于比较。但是在字符串比较的情况下,您应该使用
isEqualToString
方法。大概是这样的:

if ([magicButton.titleLabel.text isEqualToString: @"1"]) {    
  [magicButton setTitle:@"2" forState:UIControlStateNormal];
}

另请注意,您应该获得
UILabel
text
属性

如果您想无限制地更改按钮文本,则无法生成一百万条If语句。您应该获得按钮标题的值(如果它甚至有标题),然后只需向其添加1,如下所示:

NSString *string = randomButton.titleLabel.text;

    if ([randomButton.titleLabel.text length] == 0) { //Check if there is not a title on the button

     [randomButton setTitle:@"1" forState:UIControlStateNormal]; //And if there isn't, set it to "1"

    }

    else {

        int yourInt = [string intValue]; //Convert to int

        int nextInt = yourInt + 1; //Add one to value

        NSString *finalString = [NSString stringWithFormat:@"%d",nextInt]; //Convert back to string

        [randomButton setTitle:finalString forState:UIControlStateNormal]; //Finally set it as the title

    }

如果你想不受限制地改变按钮文本,你就不能做出一百万条If语句。您应该获得按钮标题的值(如果它甚至有标题),然后只需向其添加1,如下所示:

NSString *string = randomButton.titleLabel.text;

    if ([randomButton.titleLabel.text length] == 0) { //Check if there is not a title on the button

     [randomButton setTitle:@"1" forState:UIControlStateNormal]; //And if there isn't, set it to "1"

    }

    else {

        int yourInt = [string intValue]; //Convert to int

        int nextInt = yourInt + 1; //Add one to value

        NSString *finalString = [NSString stringWithFormat:@"%d",nextInt]; //Convert back to string

        [randomButton setTitle:finalString forState:UIControlStateNormal]; //Finally set it as the title

    }

可能重复的[为什么我的比较if语句不工作?](,,可能重复的[为什么我的比较if语句不工作?](,,嗯,它说"“UILabel”没有可见的@interface文件声明选择器“IsequalString”,这就是我添加PS的原因。你应该比较的是
magicButton.titleLabel.text
。哦,好的。谢谢。编辑:编译并运行之后,每当我按下按钮iPhone模拟器崩溃时。你对为什么这样做有什么想法?顺便说一句,你对我帮助很大,非常感谢您让我从我的无事状态中解脱出来:)顺便说一下,我的语句是这样的:
if([magicButton.titleLabel.text IsequalString:@“1”){[magicButton setTitle:@“2”for state:UIControlStateNormal];}
嗯……您确定您有一个
IBOutlet
正确设置为
magicButton
?另外,如果调用
buttonChange:
方法的按钮是同一个按钮,您可以这样做:
如果([sender.titleLabel.text IsequalString:@“1”]){[sender setTitle:@“2”forState:UIControlStateNormal];}
Hmm,它说"“UILabel”没有可见的@interface文件声明选择器“IsequalString”,这就是我添加PS的原因。你应该比较的是
magicButton.titleLabel.text
。哦,好的。谢谢。编辑:编译并运行之后,每当我按下按钮iPhone模拟器崩溃时。你对为什么这样做有什么想法?顺便说一句,你对我帮助很大,非常感谢你帮我摆脱了困境:)顺便说一下,我的声明是这样的:
if([magicButton.titleLabel.text IsequalString:@“1”){[magicButton setTitle:@“2”forState:UIControlStateNormal];}
嗯。。。您确定已将
IBOutlet
正确设置为
magicButton
?另外,如果调用
buttonChange:
方法的按钮是同一个按钮,则可以执行以下操作:
if([sender.titleLabel.text IsequalString:@“1”){[sender setTitle:@“2”forState:UIControlStateNormal];}