[英]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。 另請注意,您應該獲取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
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.