Objective c 如何获取NSString中特定单词附近的文本范围?

Objective c 如何获取NSString中特定单词附近的文本范围?,objective-c,search,nsstring,nsrange,Objective C,Search,Nsstring,Nsrange,我有一根长长的绳子。出于性能原因,表视图数据源通常重用UITableViewCell对象。表视图维护标记为可重用的单元格对象队列。例如,如果要显示包含1000行的列表,则创建1000个表视图单元格的效率非常低,而创建当前视图中的少数单元格的效率要高得多。” 现在如果用户搜索单词“保持”,那么上面的NSString肯定有这个单词。现在我只想显示这个单词的行号,而不是整个文本。这样用户就会知道这个文本有这个单词,它在哪里 -用户搜索“维护”。 -代码处理NSString。 -输出将如下所示..“表视

我有一根长长的绳子。出于性能原因,表视图数据源通常重用UITableViewCell对象。表视图维护标记为可重用的单元格对象队列。例如,如果要显示包含1000行的列表,则创建1000个表视图单元格的效率非常低,而创建当前视图中的少数单元格的效率要高得多。”

现在如果用户搜索单词“保持”,那么上面的NSString肯定有这个单词。现在我只想显示这个单词的行号,而不是整个文本。这样用户就会知道这个文本有这个单词,它在哪里

-用户搜索“维护”。 -代码处理NSString。 -输出将如下所示..“表视图维护一个由…组成的单元格对象队列”或这也可能是一个结果..“维护一个由…组成的单元格对象队列” 第二个结果将是伟大的

NSRange range = [myString rangeOfString:@"maintains" options:NSBackwardsSearch range:NSMakeRange(0, 11)];

NSLog(@"range.location: %lu", range.location);

NSString *substring = [myString substringFromIndex:range.location+1];

NSLog(@"substring: '%@'", substring);`
但是没有成功…从这个

请帮助我实现目标…

这样就可以了:

- (NSString *)getSnippetContaining:(NSString *)keyword
                          inString:(NSString *)theString
                     numberOfWords:(NSUInteger)wordCount
{
    NSRange range = [theString rangeOfString:keyword
                                  options:NSBackwardsSearch
                                    range:NSMakeRange(0, theString.length)];
    if (range.location == NSNotFound) {
        return nil;
    }

    NSString *substring = [theString substringFromIndex:range.location];
    NSArray *words = [substring componentsSeparatedByString:@" "];
    if (wordCount > words.count) {
        wordCount = words.count;
    }
    NSArray *snippetWords = [words subarrayWithRange:NSMakeRange(0, wordCount)];
    NSString *snippet = [snippetWords componentsJoinedByString:@" "];

    return snippet;
}
numberOfWords
是您希望从输入中提取的代码段的长度