与NSString的区分大小写的字符串比较问题

时间:2012-05-04 09:02:23

标签: iphone nsstring

我在数据库中保留一个字符串字段,该字段应该是唯一的。因此,每当我想使用文本字段为该字段添加新记录时,我将不得不测试这样的记录是否已经存在。如果我已经添加了'A',那么我甚至不能在以后添加'a'。但是使用我的代码,如果我添加“A”,则不会添加“A”,但会添加“a”。那么这个'案例'问题的解决方案是什么。我也尝试了[someString compare:otherString选项:NSCaseInsensitiveSearch],但我没有为我工作。

这是我的代码:

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"];
            }

2 个答案:

答案 0 :(得分:2)

如上所述here,您可以将所有字符串放在NSSetNSMutableSet中,采用小写形式。这将有效地处理您的问题,因为这正是NSSet存在的原因。

答案 1 :(得分:1)

compare:options:NSCaseInsensitiveSearch:上使用NSString方法应该有效。

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