[問題] NSString 帶入判斷式

看板MacDev作者 (石炭石炭)時間13年前 (2012/03/08 14:17), 編輯推噓4(4012)
留言16則, 5人參與, 最新討論串1/2 (看更多)
各位高手!!請幫幫小弟 我利用了 NSString *title= [sender titleForState:UIControlStateNormal]; 抓到了我這個button的title 可是把title帶入if判斷式內的時候 一直判斷錯誤 以下我的寫法 總共有四個按鈕其中一個的title是1 if (title !="1") { UIAlertView *alert =[[UIAlertView alloc]initWithTitle:@"正確" message:@"接下去" delegate:self cancelButtonTitle:@"確定" otherButtonTitles:nil]; [alert show]; [alert release]; } 總共有四個按鈕其中一個的title是1 結果四個按鈕都會跳出正確這個視窗 因為到這一步都無法正確所以沒有寫下面的 請各位高手幫我解答一下!! -- ******************************************************************* 如果將字母 A 到 Z 分別編上 1 到 26 的分數,(A=1,B=2...,Z=26) 你的知識(KNOWLEDGE)得到 96 分(11+14+15+23+12+5+4+7+5=96) 你的努力(HARDWORK)也只得到 98 分(8+1+18+4+23+15+18+11=98) 你的態度(ATTITUDE)才是左右你生命的全部(1+20+20+9+20+21+4+5= <100> ) ******************************************************************* -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.32.26.126 ※ 編輯: love100205mt 來自: 114.32.26.126 (03/08 14:19)

03/08 14:29, , 1F
字串不是這樣比較的.你沒學過c語言??
03/08 14:29, 1F

03/08 14:32, , 2F
NSString有Overload. 可以直接比. 改成 title !=@"1" 試試
03/08 14:32, 2F

03/08 14:33, , 3F
不過不建議你用字串來比. 可以用 IB裡面對button設tag.
03/08 14:33, 3F
因為要用按鈕的名稱做一個判斷的關鍵 所以才想說抓按鈕的title來做比較 用了 title !=@"1"也是不行 是因為字串不能比較的關係嘛? 用tag也可以做一個判斷嘛@@? 小弟真的不是很懂(ˊ口ˋ) ※ 編輯: love100205mt 來自: 114.32.26.126 (03/08 14:41)

03/08 14:59, , 4F
if ([title isEqualToString:@"1"]) {...}
03/08 14:59, 4F

03/08 15:00, , 5F
!
03/08 15:00, 5F
用if (![title isEqualToString:@"1"]) 可以成功了!! 感謝高手 ※ 編輯: love100205mt 來自: 114.32.26.126 (03/08 15:08)

03/09 00:04, , 6F
這個問題比較妙,C沒String, C++可以這樣比,java不行
03/09 00:04, 6F

03/09 00:05, , 7F
說真的==反而能用的場合比較少 =P
03/09 00:05, 7F

03/09 00:52, , 8F
與其說==用得少,還不如說=都用得少了...
03/09 00:52, 8F

03/09 00:53, , 9F
"="的意涵雖然不同 不過多半還是預期中的結果 XD
03/09 00:53, 9F

03/09 00:54, , 10F
只有C++的=有"copy"的意涵(雖然他用很漂亮的緩評估避開)
03/09 00:54, 10F

03/09 00:54, , 11F
"=="的話則是除了C++ STL以外,都容易讓人誤會阿(遠目)
03/09 00:54, 11F
因為要做的是需要判斷字串的按鈕,所以不知道該如何使用!! ※ 編輯: love100205mt 來自: 114.32.26.126 (03/09 08:39)

03/09 10:38, , 12F
原PO看起來很迷惑...多說一句好了,object c裡面NSObject
03/09 10:38, 12F

03/09 10:40, , 13F
系列都是指針,所以title=="1"是拿NSString *和char *比較
03/09 10:40, 13F

03/09 10:41, , 14F
titile==@"1"是拿兩個不同NSString*的地址比較,所以都否
03/09 10:41, 14F

03/09 10:42, , 15F
只有調用isEqualToString method才是對兩者內容的比較。
03/09 10:42, 15F
東西是做出來了,只是不太懂原理,經過高手解析之後,比較清楚isEqualToString的用法。 ※ 編輯: love100205mt 來自: 114.32.26.126 (03/09 11:04)

03/11 12:58, , 16F
Operator overloading is evil...
03/11 12:58, 16F
文章代碼(AID): #1FM4xz6- (MacDev)
討論串 (同標題文章)
文章代碼(AID): #1FM4xz6- (MacDev)