NSString indexOf в Objective-C - PullRequest
       7

NSString indexOf в Objective-C

53 голосов
/ 02 ноября 2008

Есть ли что-нибудь похожее на indexOf функцию в объектах NSString?

Ответы [ 4 ]

87 голосов
/ 02 ноября 2008

Использование -[NSString rangeOfString:]:

- (NSRange)rangeOfString:(NSString *)aString;

Находит и возвращает диапазон первого вхождения данной строки в получателе.

28 голосов
/ 07 ноября 2011

Если вы хотите просто знать, когда 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
}

Это менее читабельно, но повышает производительность

18 голосов
/ 07 сентября 2011

Я написал категорию для расширения исходного объекта 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
1 голос
/ 05 января 2014

Я знаю, что уже поздно, но я добавил категорию, которая реализует этот метод и многие другие, похожие на строковые методы javascript
https://github.com/williamFalcon/WF-iOS-Categories

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...