繁体   English   中英

Xcode中Objective-C中的IF语句

[英]IF statement in Objective-C in Xcode

在Xcode中,我试图创建一个按钮来相对于当前文本更改其文本。 例如:如果按钮说“ 1”并被按下,我希望文本更改为“ 2”,“ 2”更改为“ 3”,依此类推,这是给我带来麻烦的代码片段:

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

Xcode在代码段的第一行给了我这个错误“分配给只读属性”。 对于Objective-C和iPhone App开发,我还很陌生,所以也许这很疯狂,很简单。 如果是这种情况,请不要介意。

如果有帮助,请粘贴我的实现文件

提前致谢。

“ =”用于分配,而“ ==”用于比较。 但是在字符串比较的情况下,应使用isEqualToString方法。 像这样:

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

PS。 另请注意,您应该获取UILabeltext属性

如果要无限制地相对于按钮文本进行更改,则不能输入一百万条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

    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM