2011-12-11 154 views
3

所以我非常想檢查我的NSArray中的NSString是否是我的名爲imageName的字符串的子字符串。使用NSArray的NSString檢查字符串中的子字符串?

因此,可以說本:

  1. 我的形象的名字是:picture5of-batman.png
  2. 我的數組包含字符串,其中之一是:蝙蝠俠

所以非常想消除:picture5of-圖像名稱的一部分,並將其替換爲NSArray中的NSString。

這是我如何嘗試這樣做,但它從來沒有使它的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 
     } 

}

回答

5
[imageName rangeOfString:string options: NSCaseInsensitiveSearch] 
+0

檢查我的edit1。 –

+0

如何輕鬆擺脫像_和空格這樣的東西,確保它能正常工作? –

2

我不明白爲什麼它不是在你的代碼的工作,也許從NSRage測試中拆分NSString的東西。
但這項工作在這裏:

 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

+0

好的,但我怎麼會實際上修改imageName只包括找到匹配的字符串? –

+0

你想要的最終結果是什麼?因爲在你的問題中,你建議你想要結束Batmanbatman.png。那是你要的嗎? –

+0

不只是Batman.png –

相關問題