Nano Hash - криптовалюты, майнинг, программирование

Завершение работы приложения из-за необработанного исключения «NSInvalidArgumentException», причина: «-[NSCFString nric]:

Я получаю эту ошибку, когда играю с панелью поиска, которую я только что реализовал. Некоторые буквы работают, а другие вылетают с ошибкой в ​​заголовке. Ошибка кажется здесь, но я не могу понять, что с ней не так: "cell.textLabel.text = info.nric;".

Кто-нибудь, помогите =(

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

    static NSString *CellIdentifier = @"Cell";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier] autorelease];
    }

    // Set up the cell...

    if(searching){
        PatientInfo *info = [copyListOfItems objectAtIndex:indexPath.row];
        cell.textLabel.text = info.nric;
        cell.detailTextLabel.text = [NSString stringWithFormat:@"%i, %i", info.category, info.age];
    }
    else {

        //First get the dictionary object
        NSDictionary *dictionary = [listOfItems objectAtIndex:indexPath.section];
        NSArray *array = [dictionary objectForKey:@"Patients"];
        PatientInfo *info = [array objectAtIndex:indexPath.row];
        // NSString *cellValue = [array objectAtIndex:indexPath.row];
        cell.textLabel.text = info.nric;
        cell.detailTextLabel.text = [NSString stringWithFormat:@"%i, %i", info.category, info.age];
    }

    return cell;
}

  • Как вы заполняете copyListOfItems? 15.06.2011

Ответы:


1

Один из массивов, который, по вашему мнению, содержит только PatientInfo объектов, на самом деле содержит NSString. Поэтому, когда вы затем пишете info.nric, он запрашивает у NSString свойство nric, которого, конечно же, не существует. Фактическая ошибка будет везде, где вы по ошибке поместите строку в массив (либо copyListOfItems, либо listOfItems).

15.06.2011
  • спасибо .. действительно, я добавлял строковые объекты в copyListOfItems... Миллион благодарностей! Теперь я тоже узнаю, что означает это сообщение об ошибке =) 15.06.2011

  • 2

    Замените следующим кодом, вы будете знать, что именно не так в вашем коде:

    PatientInfo *info = [copyListOfItems objectAtIndex:indexPath.row];
    if((nil != info) && ([info isKindOfClass:[PatientInfo class]))
    {
        if([info respondsToSelector:@selector(nric)])
        {
            cell.textLabel.text = info.nric;
        }
    }
    
    15.06.2011
    Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..