2015-09-18 5 views
0

В моем проекте я добавляю много слов в список с другого контроллера представления, и мне нужно проверить, что слова не могут быть одинаковыми в списке. Вот код, пожалуйста, помогите, где мне нужно сделать чтоКак сравнить строки?

-(IBAction)save:(id)sender{ 
    if ([listName.text isEqualToString:@""]) { 
     UIAlertView *error = [[UIAlertView alloc] initWithTitle:nil message:@"Please enter List Name." delegate:self cancelButtonTitle:@"Ok" otherButtonTitles: nil]; 
     [error show]; 
    } else if (self.newlist) { 
     if (listName.text.length > 0 ) { 
      [[UIApplication sharedApplication] cancelAllLocalNotifications]; 
      NSDate *currDate = [NSDate date]; 
      NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]init]; 
      [dateFormatter setDateFormat:@"YYYY-MM-dd"]; 
      NSString *dateString = [dateFormatter stringFromDate:currDate]; 

      if (notification.on) { 
       NSString *dateStr = [[NSString alloc] initWithFormat:@"%@ %@",dateString, time.text ]; 

       [self saveList:dateStr:dateString]; 
       [self saveListImages]; 
       [self getlistdata]; 
      }else { 
       [self saveList:@"2000-01-01 00:00":dateString]; 
      } 
     }else{ 
      [listName becomeFirstResponder]; 
     } 
    } 
} 
+0

Пожалуйста, пост код '' saveList', saveListImages' и 'getlistdata' методами. –

+0

Сохраните строку в 'NSSet', так как' NSSet' не может содержать более одного объекта с тем же значением. Значение основано на наличии объекта. Вы можете не хранить одну и ту же строку дважды в 'NSSet', и вы можете использовать' containsObject', если строка уже находится в наборе. – rckoenes

+0

Не получить его должным образом ... может у указать больше ?? в моем коде я сравниваю имена списков .Pls help – Asheesh

ответ

0

Добавить строку в изменяемый массив и вызвать ниже компаратора для проверки дубликатов. Ниже код обеспечивает проверку нечувствительности к регистру, поэтому он не позволит TEST и test идти в том же массиве.

NSMutableArray *myArray = [NSMutableArray arrayWithArray:@[@"TEST", @"Data"]]; 

NSString *testString = @"Test"; 

NSInteger index = [myArray indexOfObjectPassingTest:^BOOL(id obj, NSUInteger idx, BOOL *stop) { 
    return (BOOL)([obj caseInsensitiveCompare:testString] == NSOrderedSame); 
}]; 

if (index != NSNotFound) { 
    NSLog(@"String already entered. Throw error"); 
} else { 
    [myArray addObject:testString]; 
} 
0
NSOrderedSet *uniqueWordSet = [NSOrderedSet orderedSetWithArray:arrayWithDuplicates]; 
NSArray *unwiqueWordList = uniqueWordSet.array; // If you need it as array 
+0

Пожалуйста, подумайте над тем, чтобы добавить некоторые объяснения к вашему ответу. –

Смежные вопросы