UISearchBar нераспознанный селектор отправлен на экземпляр

У меня есть .json файл хранится локально, из которого я загружаю в массив под названием countries как countries = (NSArray *)[NSJSONSerialization JSONObjectWithData [fileContents dataUsingEncoding:NSUTF8StringEncoding] options:0 error:NULL]; после загрузки пути к файлу конечно. Я загружаю .json в countries массив как:

 NSString * filePath =[[NSBundle mainBundle] pathForResource:@"countries" ofType:@"json"];
    NSError * error;
    NSString* fileContents =[NSString stringWithContentsOfFile:filePath encoding:NSUTF8StringEncoding error:&error];


    if(error||!filePath)
    {
        NSLog(@"Error reading file: %@",error.localizedDescription);
    }

    countries = (NSArray *)[NSJSONSerialization
                                JSONObjectWithData:[fileContents dataUsingEncoding:NSUTF8StringEncoding]
                                options:0 error:NULL];



После этого я взял NSMutableArrayназывается displayItems и инициализировал его как displayItems = [[NSMutableArray alloc] initWithArray:countries];,

Чем в UITableView методы делегата, которые я использовал displayItems в count который после NSLog дает 248 означает, что это правильно получать значения cellForRowAtIndexPath а также didSelectRowAtIndexPath

Смотрите это изображение ниже для иерархии ViewController Вот иерархия моего View Controller с табличным представлением и панелью поиска
ПРОБЛЕМА: Основываясь на точках разрыва, этот метод создает проблему.

-(void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText{
    if ([searchText length] == 0) {
        [displayItems removeAllObjects];
        [displayItems addObjectsFromArray:countries];
    } else {
        [displayItems removeAllObjects];
        for (NSString *string  in countries) {
            NSRange r = [string rangeOfString:searchText options:NSCaseInsensitiveSearch];
            if (r.location != NSNotFound) {
                [displayItems addObject:string];
            }
        }
    }
    [tableView reloadData];
}

Когда он достигает линии Range r приложение вылетает и ошибка unrecognized selector sent to instance,
Все работает отлично, пока я не наберу письмо в UISearchBar приложение вылетает в это время.

Точная ошибка:

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFDictionary rangeOfString:options:]: unrecognized selector sent to instance 0x12ddd5e90'
*** First throw call stack:
(0x180a55900 0x1800c3f80 0x180a5c61c 0x180a595b8 0x18095d68c 0x1000d0e3c 0x185953d28 0x18577fe50 0x18577fdcc 0x185767a88 0x185953ad4 0x18578a8f8 0x18591fee8 0x18591f104 0x185aafae4 0x186095b20 0x18591ee70 0x185b5cc90 0x185b5c854 0x185772e84 0x181417e20 0x180a0cefc 0x180a0c990 0x180a0a690 0x180939680 0x181e48088 0x1857b0d90 0x1000e0e94 0x1804da8b8)
libc++abi.dylib: terminating with uncaught exception of type NSException

0 ответов

Другие вопросы по тегам