2011-11-11 11 views
0

さんは推測してみましょう私持っているように見えたNSArray:文字列がNSArrayエントリに含まれているかどうかをチェックする方法は?

(
    "zad0xsis|mac", 
    "+zad0xsis", 
    @someone, 
    %another-one", 
    ~admin, 
) 

どのように私はNSStringのは、アレイ上の一部に等しい(しかし、常に前に+、@、〜、%記号を削除する)かどうかを確認することができますか?私はforループを使用していますが、方法はわかりません

答えて

0

は、最後に私が引用した他の方法は非常に優れている

1

NSString Classの一部であるrangeOfStringを使用できます。

BOOL exists = NO; 
for (NSString *what in myArray) 
{ 
    if ([someSearchString rangeOfString:what].location != NSNotFound) { 
     exists = YES; 
     break; 
    } 
} 
+0

見つかった結果のインデックスを知る方法はありますか? – pmerino

2

を探していたインデックスを持っ

for(int i=0; i<[self.userArray count]; i++) { 
     NSString *user = [self.userArray objectAtIndex:i]; 
     NSLog(@"%@", user); 
} 

を使用しました。もう一つの選択肢は、NSArrayのブロックベースの列挙メソッドを利用することです。ブロックベースのメソッドを使用すると、開発中のプラットフォームで並行性を活用でき、将来の方法になります。次のように私は考えていた方法は次のとおりです。

  • (NSUInteger)indexOfObjectWithOptions:(BOOL(^)(IDのOBJ、NSUInteger idxを、BOOL *ストップ))述語
:(NSEnumerationOptions)はpassingTest付き合えまた、ここで説明

NSUInteger theIndex=NSNotFound; 
theIndex=[theArray indexOfObjectWithOptions:NSEnumerationConcurrent passingTest:^(id obj, NSUInteger, idx, BOOL *stop){ 
    if ([obj rangeOfString: aString]!=NSNotFound]){ 
     *stop=YES; 
     return YES; 
    } 
    return NO; 
}]; 

ソリューション:How to check if an NSString contains one of the NSStrings in an NSArray?

幸運はそうあなたの状況に次のものを使用することができます

関連する問題