2013-08-30 2 views
-2

У меня есть целочисленные значения внутри NSMutableArray. Я добавил UITextField и UIButton. Если номер введен внутри textfield, и нажатие на кнопку делает сравнение. Если число вводит совпадения, мне нужно показать NSLog. Но это не работает.сравнение Целочисленные значения с использованием массива

код:

arr = [[NSMutableArray alloc]init]; 
[arr addObject:[NSNumber numberWithInteger:1]]; 

нажатие кнопок:

-(void)click:(id)sender{ 
    if (text.text == [arr objectAtIndex:0]){ 
     NSLog(@"values matched"); 
    } 
} 
+0

2 проблемы: Вы не можете сравнивать .text NSString свойства с == оператор. Вы. Нужно использовать 'isEqualToString:' для сравнения строк, также элемент массива не является NSString, а NSNumber. –

ответ

3

Попробуйте это

-(void)click:(id)sender{ 

    NSString *str = [NSString alloc]initWithFormat:@"%d",[arr objectAtIndex:0]]; 
     if([text.text isEqualToString: str]){ 

      NSLog(@"values matched"); 


     } 
    } 
2

Я предполагаю, что массив содержит NSNumber объектов; и если так преобразовать содержимое TextField к NSNumber объекта и использовать [NSArray indexOfObject], чтобы найти его в массиве:

- (void)click:(id)sender{ 
    NSNumber *num = [NSNumber numberWithInt:[text.text intValue]]; 
    NSUInteger index = [arr indexOfObject:num]; 
    if (index != NSNotFound) { 
     NSLog(@"values matched"); 
    } 
} 
+0

@middaparka Это все еще не ясно, однако, если OP хочет сопоставить текстовое поле с * любым * значением в массиве или просто с первым объектом ... – trojanfoe

+0

Я думаю, что ваш подход «проверить все объекты в массиве» точно соответствует тому, что OP описывает текст. (Я предполагаю, что поставляемый код является лишь шагом в этом направлении и что итерация была добавлена ​​далее.) –

+0

@middaparka Думаю, мы узнаем позже; ОП задал классический вопрос «огонь и забыть» ... – trojanfoe