isEqualToString总是返回true
问题描述:
for (Annotation *ann in annotaionArray) // annotationArray contains annotations added to map
{
NSString *fetchedtitle = ann.title;
if([fetchedtitle isEqualToString:oldTitle]); // oldTitle = textfield.text
{
ann.title = appDelegate.pinTitle;
break;
}
}
但是比较总是如此。可能是什么错误?isEqualToString总是返回true
从sqlite获取的const char被铸造为stringWithUTF8String
。
一切都已完成,以完美的铸造字符串,但仍然为什么是比较错误?
答
删除尾部的分号!
if ([fetchedtitle isEqualToString:oldTitle])
{
ann.title = appDelegate.pinTitle;
break;
}
随着分号,你的代码是一样的:
if ([fetchedtitle isEqualToString:oldTitle])
;
{
ann.title = appDelegate.pinTitle;
break;
}
答
既然你在你的IF语句结尾有分号你的代码是:
if([fetchedtitle isEqualToString:oldTitle])
{
// Do nothing
}
// this will always run
ann.title = appDelegate.pinTitle;
break;
+0
感谢您的帮助 – Manoj 2013-02-19 13:10:40
答
替换以下行
if([fetchedtitle isEqualToString:oldTitle]);
与
if([fetchedtitle isEqualToString:oldTitle])
+0
感谢您的帮助 – Manoj 2013-02-19 13:09:55
答
只是删除分号(;)从你的代码的以下部分...
if([fetchedtitle isEqualToString:oldTitle]);
LOL我多么的愚蠢。非常感谢你的帮助... – Manoj 2013-02-19 13:06:52
我们都去过那里。 – trojanfoe 2013-02-19 13:07:19
大声笑,完全相同的错误..在此页登陆.. – Kyuubi 2013-06-13 09:24:56