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

NSArrayM insertObject: atIndex:]: объект не может быть нулевым '

После долгого поиска и попыток с некоторыми решениями по stackoverflow я не нашел ответа, который мог бы решить мою ошибку: у меня есть UIViewcontroller, которого зовут WorldViewController. В этом UIViewcontroller я запустил несколько UIViews. Я хочу изменить некоторые переменные, которые зависят от WorldViewController от некоторых UIViews. И теперь, когда я поставил эти строки:

WorldViewController * World = [[WorldViewController alloc] init];

это дает мне:

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[__NSArrayM insertObject:atIndex:]: object cannot be nil'

Итак, как это исправить? Может быть, это связано с тем, что WorldViewController запущен? Так вот, как исправить?

Изменить: метод инициализации моего контроллера просмотра

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        // Custom initialization

        World1 = [[UIView alloc] initWithFrame:CGRectMake(0.0, 0.0, 320.0, 480.0)];
        [World1 setBackgroundColor:[UIColor blackColor]];
        [self.view addSubview:World1];
        [World1 release];

        [self.view addSubview:ViewPig];
        [self.view addSubview:level1view];
        [self.view addSubview:level2view];
        [self.view addSubview:LoadView];
        [LoadView AnimPigLoadingWith:PigChargement];
        [LoadView AppearLabelLoading];
        [self.view addSubview:FondPauseGrise];
        [self.view addSubview:FondPause];
        [self.view addSubview:BoutonResume];
        [self.view addSubview:BoutonHome];
        [self performSelector:@selector(Chargement) withObject:nil afterDelay:0.5];
        [self performSelector:@selector(ViewAppears) withObject:nil afterDelay:5.5+2.5];
        [self performSelector:@selector(LabelPrevientDepartWithImage:) withObject:Trois afterDelay:9];
        [self performSelector:@selector(LabelPrevientDepartWithImage:) withObject:Deux afterDelay:10];
        [self performSelector:@selector(LabelPrevientDepartWithImage:) withObject:Un afterDelay:11];
        [self performSelector:@selector(LabelPrevientDepartWithImage:) withObject:Go afterDelay:12];
        [self performSelector:@selector(Lancement) withObject:nil afterDelay:(3)];
        [self performSelector:@selector(GestionMaps) withObject:nil afterDelay:(11+2)];
    }
    return self;
}

Спасибо !


  • Предоставлено недостаточно кода. Нам нужно увидеть некоторые реализации метода инициализации WorldViewController 10.06.2013

Ответы:


1

Вы не указали достаточно кода в своем вопросе, чтобы однозначно показать, где вы делаете ошибку.

Поищите в коде строки, в которых написано «insertObject:atIndex:». Объект, который вы вставляете, по-видимому, равен нулю.

Если вы не можете найти эту строку, добавьте символическую точку останова на символ "[NSArray insertObject:atIndex:]" (щелкните ссылку, чтобы просмотреть конкретные инструкции в ответе на вопрос, тесно связанный с вашим), и посмотрите, сможете ли вы сломать его прямо перед тем, как произойдет сбой.

10.06.2013
  • Проблема в том, что у меня нет insertObject: atIndex: в моем коде, в моем контроллере просмотра или uiview, и эта ошибка возникает только тогда, когда я добавляю WorldViewController * World = [[WorldViewController alloc] init]; 11.06.2013
  • что происходит, когда вы добавляете символическую точку останова? где останавливает отладчик? 11.06.2013
  • Непосредственно перед этой строкой: WorldViewController * World = [[WorldViewController alloc] init]; Эта строка не работает, я не знаю почему 11.06.2013
  • что происходит внутри вашей init функции WorldViewController? 11.06.2013
  • [self.view addSubview: myUIView]; и некоторые методы называются 11.06.2013
  • Интересно, myUIView имеет значение null или еще не создан или не загружен? Вы должны это проверить. 11.06.2013
  • Нет, потому что мой viewcontroller открыт, и некоторые методы моего UIView работают, я не знаю, как это исправить, просто в этой строке: / 11.06.2013
  • Измените свой вопрос, чтобы отобразить код, который появляется в вашем init методе. 11.06.2013
  • попробуйте: if (myUIView! = nill) {[self.view addSubview: myUIView]} 11.06.2013
  • Я редактировал. Касилик, это не работает. Мой uiview - level1view 11.06.2013
  • вы добавляете это к собственному обзору? [self.view addSubview: World1]; 11.06.2013
  • World1 - это UIView на контроллере представления 11.06.2013
  • Вы вызываете init или [[WorldViewController alloc] initWithNibName: bundle:] ;? 11.06.2013
  • любые решения? Я застрял в той же проблеме, и мое состояние тоже такое же. Помоги пожалуйста. 23.08.2013
  • @AnkitMehta посмотрите на то, что я предложил в своем решении, и посмотрите, поможет ли оно и вам. 23.08.2013

  • 2

    У меня была аналогичная проблема. Моя ошибка заключалась в том, что я не пометил представление, которое я пытался загрузить, как начальный контроллер представления. Я предполагаю, что начального контроллера представления для добавления в массив не было, и, следовательно, объект был равен нулю. Я не уверен, насколько это хорошо для ответа на ваш вопрос, но у меня это сработало.

    введите описание изображения здесь

    13.12.2014
  • спасибо сработало для меня 30.03.2021
  • Новые материалы

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

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

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

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

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

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

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