Есть ли что-либо подобное функции indexOf
в объектах NSString?
NSString indexOf в Objective-C
Ответ 1
Используйте -[NSString rangeOfString:]
:
- (NSRange)rangeOfString:(NSString *)aString;
Находит и возвращает диапазон первого вхождения данной строки в приемнике.
Ответ 2
Если вы хотите просто знать, когда String a содержит String b, используйте мой способ сделать это.
#define contains(str1, str2) ([str1 rangeOfString: str2 ].location != NSNotFound)
//using
NSString a = @"PUC MINAS - BRAZIL";
NSString b = @"BRAZIL";
if( contains(a,b) ){
//TO DO HERE
}
Это менее читаемо, но повышает производительность
Ответ 3
Я написал категорию для расширения исходного объекта NSString. Может быть, вы, ребята, можете это сделать. (Вы также можете увидеть статью в моем блоге.)
ExtendNSString.h:
#import <Foundation/Foundation.h>
@interface NSString (util)
- (int) indexOf:(NSString *)text;
@end
ExtendNSStriing.m:
#import "ExtendNSString.h"
@implementation NSString (util)
- (int) indexOf:(NSString *)text {
NSRange range = [self rangeOfString:text];
if ( range.length > 0 ) {
return range.location;
} else {
return -1;
}
}
@end
Ответ 4
Я знаю это поздно, но я добавил категорию, которая реализует этот метод, и многие другие, похожие на методы строки javascript
https://github.com/williamFalcon/WF-iOS-Categories