Objective c 目标C:确定NSString中是否存在子字符串的最简单方法是什么?

Objective c 目标C:确定NSString中是否存在子字符串的最简单方法是什么?,objective-c,Objective C,在我最熟悉的PHP中,它是一个单行表达式: strpos('abc', 'b') !== false 目标C的等价物是什么 [@"abc" rangeOfString:@"b"].location != NSNotFound 返回值NSRange结构,给出中的位置和长度 第一次出现阿斯特林的接受者。返回{NSNotFound, 0}如果找不到aString或aString为空@ 您可以在中找到更多有用的字符串操作函数 返回值NSRange结构,给出中的位置和长度 第一次出现阿斯特林的接受者。

在我最熟悉的PHP中,它是一个单行表达式:

strpos('abc', 'b') !== false
目标C的等价物是什么

[@"abc" rangeOfString:@"b"].location != NSNotFound
返回值NSRange结构,给出中的位置和长度 第一次出现阿斯特林的接受者。返回{NSNotFound, 0}如果找不到aString或aString为空@

您可以在中找到更多有用的字符串操作函数

返回值NSRange结构,给出中的位置和长度 第一次出现阿斯特林的接受者。返回{NSNotFound, 0}如果找不到aString或aString为空@


您可以在

中找到更多有用的字符串操作函数。我认为可以使用类别将类似这样的功能很好地打包起来

@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"]) {
    …
}

在大多数项目中,这将是一个更大的字符串方法类别的一部分,而不是它自己的一个方法类别。

我认为类别可以用来很好地打包这样的功能

@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"]) {
    …
}

在大多数项目中,这将是一个更大的字符串方法类别的一部分,而不是它自己的一个方法类别。

这有帮助吗?Cocoa类的文档记录相当完整。很明显,当你需要什么的时候,你会被鼓励去看看它们。@zneak我完全同意,但一个简单的问题并不一定是一个坏问题——特别是考虑到有些人对简单问题的解决方法是多么的做作。记录简单问题的好答案对社区有益。我前几天发表的一篇帖子就是一个很好的证明:任何人都不应该编写与一些错误答案相同的代码。将简单的答案记录下来最终是一件好事。这有帮助吗?Cocoa类的文档记录相当完整。很明显,当你需要什么的时候,你会被鼓励去看看它们。@zneak我完全同意,但一个简单的问题并不一定是一个坏问题——特别是考虑到有些人对简单问题的解决方法是多么的做作。记录简单问题的好答案对社区有益。我前几天发表的一篇帖子就是一个很好的证明:任何人都不应该编写与一些错误答案相同的代码。将简单的答案记录下来最终是一件好事。