2012-05-04 59 views
0

我在数据库中保留一个字符串字段,该字段应该是唯一的。所以每当我想使用文本字段为该字段添加新记录时,我将不得不测试这样的记录是否已经存在。如果我已经添加了'A',那么我以后甚至不能添加'a'。但是用我的代码,如果我添加'A',那么'A'没有被添加,但'a'正在被添加。那么这个'案例'问题的解决方案是什么。我也试过[someString比较:otherString选项:NSCaseInsensitiveSearch]但我没有为我工作。与NSString区分大小写的字符串比较问题

这里是我的代码:

isDuplicate = FALSE; 

      for(int i=0; i<[streetArray count]; i++) // This array contains my field 
      { 
       strToCompare = (NSString *)[[streetArray objectAtIndex:i]Address]; 
       if ([[textfield1.text lowercaseString] isEqualToString:[strToCompare lowercaseString]]) // Here I compare stings by making them lower 
       { 
        isDuplicate = TRUE; 
        break; 
       } 
      } 

      if(isDuplicate == TRUE) 
      { 
       [self showAlert:nil withMessage:@"Data already exists"]; 
      } 

回答

1

NSString上使用compare:options:NSCaseInsensitiveSearch:方法应该可以工作。

if ([@"A" compare:@"a" options:NSCaseInsensitiveSearch] == NSOrderedSame) { 
    NSLog(@"same"); 
} 
+0

它完美地为我工作。 非常感谢! – NSPratik

2

如前所述here你可以把你所有的字符串在NSSetNSMutableSet,以小写形式。这将有效地处理您的问题,因为这正是为什么存在NSSet