私は NSArray を持っており、要素の最後のオカレンスを見つけたいと思っています。例えば:
[apple, oranges, pears, apple, bananas];
int i = lastIndexOf("apple");
out: i == 3;
APIS を見て簡単な解決策を見つけるのに苦労していますが、例がないため、どの関数を使用すればよいかを理解するのはかなり困難です。
私は NSArray を持っており、要素の最後のオカレンスを見つけたいと思っています。例えば:
[apple, oranges, pears, apple, bananas];
int i = lastIndexOf("apple");
out: i == 3;
APIS を見て簡単な解決策を見つけるのに苦労していますが、例がないため、どの関数を使用すればよいかを理解するのはかなり困難です。
NSUInteger index = [array indexOfObjectWithOptions:NSEnumerationReverse
passingTest:^(id obj, NSUInteger i, BOOL *stop) {
return [@"apples" isEqualToString:obj];
}];
配列に が含まれていない場合は@"apples"
、index
になりますNSNotFound
。
NSArray
がindexOfObjectWithOptions:passingTest:
ある場合、これにより逆検索が可能になります。
例えば:
NSArray *myArr = @[@"apple", @"oranges", @"pears", @"apple", @"bananas"];
NSString *target = @"apple";
NSUInteger index = [myArr indexOfObjectWithOptions:NSEnumerationReverse
passingTest:^BOOL(NSString *obj, NSUInteger idx, BOOL *stop) {
return [target isEqualToString:obj];
}];
この方法の詳細については、Apple のドキュメントを参照してください。
カテゴリを使用した再利用可能なメソッドが必要な場合は、lastIndexOf 用に作成しました。
コードはここから見つけて自由に使用できます -
http://www.tejasshirodkar.com/blog/2013/06/nsarray-lastindexof-nsmutablearray-lastindexof/