2012-03-09 98 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变量,并且无法访问内存位置 -

相关问题