単語ごとに区切られたテキストの長い NSMutableArray があります。
アクションを実行するためのいくつかのキーワード キーワードを探していますが、配列には複数のキーワードが含まれている可能性があり、配列内の最後のキーワードにのみ応答し、それより前に見つかったキーワードはすべて無視したいと考えています。これを達成するための効率的な方法は何でしょうか?
単語ごとに区切られたテキストの長い NSMutableArray があります。
アクションを実行するためのいくつかのキーワード キーワードを探していますが、配列には複数のキーワードが含まれている可能性があり、配列内の最後のキーワードにのみ応答し、それより前に見つかったキーワードはすべて無視したいと考えています。これを達成するための効率的な方法は何でしょうか?
配列の を使用してみてくださいreverseObjectEnumerator
:
NSInteger index = [myArray length];
for (NSString *str in [myArray reverseObjectEnumerator]) {
index -= 1;
if ([str isEqualToString:@"theStringToTestFor"])
break;
}
index
配列内で最後に一致した文字列のインデックスが含まれているはずです。
配列を逆方向に検索します。
NSArray* words;
[words enumerateObjectsWithOptions:NSEnumerationReverse usingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
NSString* word = (NSString*)obj;
if ([word isEqualToString:@"testString"])
stop = YES;
}];