2012-03-09 95 views
0

我有使用最後所播放的聲音的名稱的按鈕按功能裏面一個非常簡單的isEqualTostring條件,那就是即將要播放的聲音文件的名稱:xCode - 即使調試器顯示兩個字符串不匹配,isEqualToString也會返回true?

if([lastSoundPlayed isEqualToString:soundString]) 
{ 
    [audioPlayer stop]; 
} 
else 
{ 
    //sound player stuff 
    lastSoundPlayed = soundString;//set lSP to match this sound 
} 

的lastSoundPlayed變量是最初設置爲@「z4; 3b」,一個垃圾值,以確保它永遠不會匹配任何真實的聲音名稱。 我的問題是,如果我在[audioPlayer停止]部分斷開,然後po 2個字符串,則會顯示值爲'z4; 3b'和'alarm'。明顯不同的是,爲了讓調試器達到那個斷點,它們需要保持一致。

問題發生在第一次按下按鈕時。

任何想法爲什麼它會顯示2個字符串之間的平等嗎?

感謝

編輯:只是嘗試這樣做:

if([@"goodbye" isEqualToString:@"hello"]) 
{ 
    //break here 
} 

,它仍然達到了斷點?

回答

2

'固定'這個我自己。

這是因爲我仍然使用Ad-Hoc模式,而不是調試。我跨過了斷點,意識到它跳回了if語句,好像它首先忽略了它。然後再往下看,我嘗試着去掉lastSoundPlayed變量,並且無法訪問內存位置 -

相關問題