Сравнение строки в NSMutableArray с NSString

Я очень плохо знаком с целью-c, и этот вопрос может показаться очень простым, поэтому мне жаль, если это так. Я думаю, что знаю, как заставить пользователя вводить строку в C и сравнивать ее со строкой в ​​массиве с помощью strcmp. Например (не уверен, что код правильный, так как я тоже не очень хорош в c)

    char *arr[2];
    arr[0] = "hello";
    arr[1] = "goodbye";

    char myString[10];
    printf("enter greeting\n");
    scanf("%s",myString);


    if(strcmp(myString,arr[0]) == 0 )
    {
        printf("hello to you to");
    }

    if(strcmp(myString,arr[1]) == 0 )
    {
        printf("goodbye then");
    }

Но я пытаюсь сделать то же самое с NSMutableArrays и NSStrings. Пока это идет:

    NSMutableArray *myStringArray = [[NSMutableArray alloc] init];
    [myStringArray addObject:@"hello"];
    [myStringArray addObject:@"goodbye"];


    char greetingStr[40];
    printf("enter greeting\n");
    scanf("%s", greetingStr);

    NSString *greeting = [NSString stringWithUTF8String:greetingStr];
    //Some method to compare the strings

Мне было интересно, что код сравнения NSString с объектами в NSMutableArrays. Извините, если это было плохо объяснено, но я очень новичок в программировании, и, пожалуйста, оставляйте любые ответы достаточно простыми, так как я все еще очень новичок в этом. Заранее спасибо.

2 ответа

Решение

"Некоторый метод для сравнения строк":

isEqualToString:, если вас интересует только равенство строк;

compare:, если вы также хотите получить информацию об их лексикографическом порядке.

В Objective-C вы ссылаетесь на объекты в NSArrayс и NSMutableArrayс помощью objectAtIndex: метод.

Вы бы использовали

if ([[myStringArray objectAtIndex:0] isEqualToString:greeting]) {
    //your code here
}
if ([[myStringArray objectAtIndex:1] isEqualToString:greeting]) {
    //your code here
}

или что-то подобное.

Другие вопросы по тегам