1

PHP(私が最もよく知っているもの)では、これは1行の式です。

strpos('abc', 'b') !== false

Objective Cと同等のものは何ですか?

4

3 に答える 3

7
[@"abc" rangeOfString:@"b"].location != NSNotFound
于 2012-07-13T18:42:49.450 に答える
3

カテゴリは、このような機能を非常にうまくパッケージ化するために使用できると思います。

@interface NSString (ContainsString)
- (BOOL)containsString:(NSString *)string;
@end

@implementation NSString (ContainsString)
- (BOOL)containsString:(NSString *)string
{
    NSRange range = [self rangeOfString:string options:NSCaseInsensitiveSearch];
    return range.location != NSNotFound;
}
@end

使用すると、その意味が非常に明確になります。

if ([@"this is a string" containsString:@"a string"]) {
    …
}

ほとんどのプロジェクトでは、これはより大きな文字列メソッドカテゴリの一部であり、独自の1メソッドカテゴリではありません。

于 2012-07-13T18:48:52.680 に答える
0
- (NSRange)rangeOfString:(NSString *)aString

戻り値aStringが最初に出現するレシーバー内の場所と長さを示すNSRange構造。aStringが見つからないか空(@ "")の場合、{NSNotFound、0}を返します。

NSStringクラスリファレンスで、より役立つ文字列操作関数を見つけることができます。

于 2012-07-13T18:43:21.510 に答える