我在按钮按下功能中有一个非常简单的isEqualTostring条件,它使用上次播放的声音的名称,以及即将播放的声音的名称:
if([lastSoundPlayed isEqualToString:soundString])
{
[audioPlayer stop];
}
else
{
//sound player stuff
lastSoundPlayed = soundString;//set lSP to match this sound
}
lastSoundPlayed变量最初设置为@“z4; 3b”,这是一个垃圾值,以确保它永远不会匹配任何真实的声音名称。 我的问题是,如果我在[audioPlayer stop]部分中断并且输入2个字符串,则表明值为'z4; 3b'和'alarm'。显然不同,但是为了使调试器达到该断点,它们需要是相同的。
问题发生在第一次按下按钮时。
为什么它会显示2个字符串之间的相等性?
由于
编辑:试过这个:
if([@"goodbye" isEqualToString:@"hello"])
{
//break here
}
它仍然到达了断点?
答案 0 :(得分:2)
'固定'这个我自己。
这是因为我仍然在Ad-Hoc模式下,而不是调试。我跨过断点,意识到它跳回到if语句,好像它首先忽略了它。然后再往下一点,我试图使用lastSoundPlayed变量,它无法访问内存位置 -