2013-02-19 103 views
2
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

一切都已完成,以完美的铸造字符串,但仍然为什么是比较错误?

回答

8

删除尾部的分号!

if ([fetchedtitle isEqualToString:oldTitle]) 
{ 
    ann.title = appDelegate.pinTitle; 
    break; 
} 

随着分号,你的代码是一样的:

if ([fetchedtitle isEqualToString:oldTitle]) 
    ; 
{ 
    ann.title = appDelegate.pinTitle; 
    break; 
} 
+0

LOL我多么的愚蠢。非常感谢你的帮助... – Manoj 2013-02-19 13:06:52

+1

我们都去过那里。 – trojanfoe 2013-02-19 13:07:19

+0

大声笑,完全相同的错误..在此页登陆.. – Kyuubi 2013-06-13 09:24:56

1

既然你在你的IF语句结尾有分号你的代码是:

if([fetchedtitle isEqualToString:oldTitle]) 
      { 
      // Do nothing 
      } 

// this will always run 
    ann.title = appDelegate.pinTitle; 
       break; 
+0

感谢您的帮助 – Manoj 2013-02-19 13:10:40

1

替换以下行

if([fetchedtitle isEqualToString:oldTitle]); 

if([fetchedtitle isEqualToString:oldTitle]) 
+0

感谢您的帮助 – Manoj 2013-02-19 13:09:55

1

只是删除分号(;)从你的代码的以下部分...

if([fetchedtitle isEqualToString:oldTitle]);