iOS 8.4.1字符串比较工作正常,但在iOS 9.3.2中它不起作用

时间:2016-08-01 12:50:43

标签: ios objective-c nsstring string-comparison

PFObject compare:options:range error when searching parse.com class

我的代码与上面的链接类似。它在iOS 8.4.1中工作,但它在iOS 9.3.2中崩溃

NSString *name = [NSString stringWithCString:combined_name encoding:NSASCIIStringEncoding];
NSComparisonResult result = [name compare : searchText
                                  options : (NSCaseInsensitiveSearch|NSDiacriticInsensitiveSearch)
                                    range : NSMakeRange(0, [searchText length])];
if (result == NSOrderedSame)
{
    [self.list addObject:name];
}

在上面的代码中,combined_name是字符数组。指导我。

我在以下方法中使用上面的代码。

- (void) updateSearchResultsForSearchController:(UISearchController *) searchController

在比较方法中完全崩溃。

截图是

enter image description here

1 个答案:

答案 0 :(得分:0)

NSMakeRange(0,[searchText length])导致问题。

下面的代码工作正常。

NSComparisonResult result = [name compare : searchText
                                  options : (NSCaseInsensitiveSearch|NSDiacriticInsensitiveSearch)
                                    range : [name rangeOfString: searchText options : (NSCaseInsensitiveSearch|NSDiacriticInsensitiveSearch)]];