gpt4 book ai didi

ios - NSString containsString 崩溃

转载 作者:IT王子 更新时间:2023-10-29 07:32:16 24 4
gpt4 key购买 nike

我正在尝试根据其中一个字符串字段过滤一个数组。

nameLower 和 filterLower 都有 NSString 值在里面,但我不断得到:

__NSCFString containsString:]: unrecognized selector sent to instance 0x7f876b79e160

-(void) filterFriendsArray:(NSString*)filter {
[_filteredFriendsArray removeAllObjects];
for (FacebookUser* user in _friendsArray)
{
NSString* nameLower = [user.user.name lowercaseString];
NSString* filterLower = [filter lowercaseString];
if ([nameLower containsString:filterLower])
[_filteredFriendsArray addObject:user];
}
_displayedFriendsArray = _filteredFriendsArray;
}

最佳答案

如果您希望您的代码在 iOS 7 和 iOS 8 上运行,您应该改用 rangeOfString 调用之一。基本上,如果返回的范围的长度为零,则子字符串不存在。

/* These methods return length==0 if the target string is not found. So, to check for containment: ([str rangeOfString:@"target"].length > 0).  Note that the length of the range returned by these methods might be different than the length of the target string, due composed characters and such.
*/
- (NSRange)rangeOfString:(NSString *)aString;
- (NSRange)rangeOfString:(NSString *)aString options:(NSStringCompareOptions)mask;
- (NSRange)rangeOfString:(NSString *)aString options:(NSStringCompareOptions)mask range:(NSRange)searchRange;
- (NSRange)rangeOfString:(NSString *)aString options:(NSStringCompareOptions)mask range:(NSRange)searchRange locale:(NSLocale *)locale NS_AVAILABLE(10_5, 2_0);

显然,使用 rangeOfString 在类别中自己实现 containsString 很简单:

@implementation NSString (Contains)

- (BOOL)myContainsString:(NSString*)other {
NSRange range = [self rangeOfString:other];
return range.length != 0;
}

@end

关于ios - NSString containsString 崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26410420/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com