如何检查NSArray条目中是否包含字符串?

时间:2011-11-11 16:56:58

标签: objective-c macos cocoa

我猜我有一个看起来像的NSArray:

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

如何检查NSString是否等于阵列上的某些NSString(但总是删除前面的+,@,〜,%符号)?我虽然使用for循环,但不知道如何

3 个答案:

答案 0 :(得分:2)

引用的其他方法非常好。另一种选择是利用NSArray基于块的枚举方法。基于块的方法允许您在正在开发的平台上利用并发性,并且是未来的方式。我想到的方法如下:

  • (NSUInteger)indexOfObjectWithOptions:(NSEnumerationOptions)opts passingTest:(BOOL(^)(id obj,NSUInteger idx,BOOL * stop))谓词

所以对于你的情况你可以使用以下内容:

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?

祝你好运

答案 1 :(得分:1)

您可以使用rangeOfString中的NSString Class

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

答案 2 :(得分:0)

最后使用

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

这让我得到了我正在寻找的索引