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