Проверить наличие подстроки в строке с помощью NSString из NSArray? - PullRequest
3 голосов
/ 11 декабря 2011

Итак, я хочу проверить, является ли моя строка NSSt из моего NSArray подстрокой моей строки с именем imageName.

Итак, скажем так:

  1. Имя моего изображения:picture5of-batman.png
  2. My Array содержит строки, и одна из них: Batman

Так что я очень хочу исключить: picture5of- часть имени изображения и заменить егос NSString из NSArray.

Вот как я пытаюсь это сделать, но он никогда не подходит к оператору if.И нет, мой массив также не равен нулю.Вот код:

for (NSString *string in superheroArray) {
    if ([string rangeOfString:imageName].location != NSNotFound) {
        //Ok so some string in superheroArray is equal to the file name of the image
        imageName = [imageName stringByReplacingOccurrencesOfString:@"" withString:string 
                                                      options:NSCaseInsensitiveSearch range:NSMakeRange(0, string.length)];

    }
}

Edit1 : Это все еще не работает

for (NSString *string in superheroArray) {
        if ([imageName rangeOfString:string options:NSCaseInsensitiveSearch].location != NSNotFound) {
            //Ok so some string in superheroArray is equal to the file name of the image
            imageName = string;
            //HOW ABOUT THAT FOR EFFICIENCY :P
        }

}

Ответы [ 2 ]

5 голосов
/ 11 декабря 2011
[imageName rangeOfString:string options: NSCaseInsensitiveSearch]
2 голосов
/ 11 декабря 2011

Я не понимаю, почему это не работает в вашем коде, может быть, отделить NSString от теста NSRage.
но эта работа здесь:

     NSArray *ar = [NSArray arrayWithObjects:@"Batman", @"Maurice", nil];
__block NSString *imageName = @"picture5of-batman.png";
__block NSUInteger theIndex = -1;
[ar enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
    NSRange r = [imageName rangeOfString: obj
                     options: NSCaseInsensitiveSearch];
    if (r.location != NSNotFound) 
    {
        theIndex = idx;
        NSString *str = [imageName pathExtension];
        imageName = [(NSString *)obj stringByAppendingPathExtension:str];
        //  you found it, so you can stop now
        *stop = YES;
    }
}];

if (theIndex != -1)
{
    NSLog(@"The index is : %d and new imageName == %@", theIndex, imageName);
}

А вот заявление NSLog:

2011-12-10 23: 04: 28.967 testSwitch1 [2493: 207] Индекс: 0 и новое imageName == Batman.png

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...