我在数据库中保留一个字符串字段,该字段应该是唯一的。因此,每当我想使用文本字段为该字段添加新记录时,我将不得不测试这样的记录是否已经存在。如果我已经添加了'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"];
}
答案 0 :(得分:2)
如上所述here,您可以将所有字符串放在NSSet
或NSMutableSet
中,采用小写形式。这将有效地处理您的问题,因为这正是NSSet
存在的原因。
答案 1 :(得分:1)
在compare:options:NSCaseInsensitiveSearch:
上使用NSString
方法应该有效。
if ([@"A" compare:@"a" options:NSCaseInsensitiveSearch] == NSOrderedSame) {
NSLog(@"same");
}