OGeek|极客世界-中国程序员成长平台

标题: ios如何在for循环中提取数组的所有rangeOfString? [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-13 09:47
标题: ios如何在for循环中提取数组的所有rangeOfString?

我想提取 NSarray 的所有“女儿”。

例如,nsarray 是这样制作的:

hello
hi
hello daughter
my goodness
daughter (someone)
my daughter
how are you?
etc.

我想提取所有包含“女儿”的行。你能指出我正确的方向吗?

我当前的代码是:

for (NSString *mystring in self.array)
{
    if ([mystring rangeOfString:searchText].location!=NSNotFound)

{
   NSUInteger idx = [self.array indexOfObject:mystring];
   [self.filterarray addObject: mystring];
}
}



Best Answer-推荐答案


NSArray *lines = ...;
NSArray *filteredLines = [lines filteredArrayUsingPredicate:[NSPredicate predicateWithBlock:^BOOL(NSString *string, NSDictionary *bindings) {
    return ([string rangeOfString:searchText].location != NSNotFound);
}]];

(需要 iOS 4.0 或更高版本)

如果您需要支持较早的系统版本,请使用:

NSArray *lines = ...;
NSArray *filteredLines = [lines filteredArrayUsingPredicate:[NSPredicate predicateWithFormat"(SELF contains[c] %@)", searchText]];

(需要 iOS 3.0 或更高版本)

关于ios如何在for循环中提取数组的所有rangeOfString?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8198084/






欢迎光临 OGeek|极客世界-中国程序员成长平台 (http://sqlite.in/) Powered by Discuz! X3.4