Helpers - компьютеры, интернет, программирование

NSDictionary EXC_BAD_ACCESS

NSInteger total = 4556; // Initialize total

// NSLog all fields to make sure the variables are in place
NSLog(@"%@", originField.text);
NSLog(@"%@", destinationField.text);
NSLog(@"%i", [startField.text integerValue]);
NSLog(@"%i", [endField.text integerValue]);
NSLog(@"%i", total);

// Create a dictionary of them
NSDictionary *newDict = [[NSDictionary alloc] initWithObjectsAndKeys:@"Sat. Jan 6th, 2014", @"date", originField.text, @"origin", destinationField.text, @"destination", [startField.text integerValue], @"start", [endField.text integerValue], @"end", total, @"total", @"Personal", @"type", nil];
// EXC_BAD_ACCESS CODE 1

Я пытался использовать шаблон Зомби в Инструментах, но у меня никогда не было диалогового окна. При установке точки останова приложение аварийно завершает работу в файле initWithObjectsAndKeys. Где мои мертвые переменные?


Ответы:


1

Вы не можете поместить примитивные типы в словарь. Оберните переменную total с помощью NSNumber, а затем поместите ее в словарь.

NSDictionary *newDict = [[NSDictionary alloc] initWithObjectsAndKeys:@"Sat. Jan 6th, 2014", @"date", 
originField.text, @"origin", 
destinationField.text, @"destination", 
@([startField.text integerValue]), @"start", 
@([endField.text integerValue]), @"end", 
@(total), @"total", 
@"Personal", @"type", nil];
06.01.2014
  • Вместо этого можно использовать новое обозначение @(someNumber), чтобы эта длинная строка не стала еще длиннее. 06.01.2014
  • @HotLicks Согласен. Я до сих пор работаю в традиционном стиле. 06.01.2014
  • Я как бы переключаюсь туда-сюда. В длинных строках полезна краткая запись, так как в противном случае утверждение становится непонятным. 06.01.2014

  • 2

    Вы должны вставить исходные NSSTring * значения startField и endField в NSDictionary и при необходимости преобразовать их в int.

    06.01.2014
    Новые материалы

    Интуитивное понимание тензоров в машинном обучении
    Тензор является важной концепцией во многих научных областях, таких как математика, физика, обработка сигналов и компьютерное зрение, и это лишь некоторые из них. В математике тензор — это..

    Использование машинного обучения для диагностики болезни Альцгеймера, часть 4
    Маркеры семантической согласованности для ранней диагностики болезни Альцгеймера (arXiv) Автор: Давиде Колла , Маттео Дельсанто , Марко Агосто , Бенедетто Витиелло , Даниэле Паоло Радичони..

    Почему объяснимость так важна прямо сейчас?
    По мере того, как системы искусственного интеллекта и инструменты на основе машинного обучения распространяются в нашей повседневной жизни, как практики, так и критики все чаще заявляют о..

    Анимированный математический анализ
    Использование Manim для создания математических анимированных визуализаций Визуализация данных помогает понять скрытые закономерности в данных, которые невозможно визуализировать..

    Создание простого слайдера изображений с помощью JavaScript
    Узнайте, как создать базовый слайдер изображений с помощью HTML, CSS и JavaScript. Введение В этом уроке мы создадим удобный слайдер изображений, используя JavaScript, HTML и CSS. Ползунок..

    Создание базы данных с помощью супергероя «Python»
    В этом посте мы узнаем, как создать «базу данных SQLite с помощью модуля python sqlite3, создав простую функцию входа и регистрации. Готовы ли вы к этому путешествию? Если да , давайте приступим..

    ИИ для чайников: руководство для начинающих по пониманию будущего технологий
    Вы чувствуете, что остались позади в мире ИИ? Не волнуйтесь, вы не одиноки! Со всей этой шумихой вокруг искусственного интеллекта может быть трудно понять, с чего начать. Но не позволяйте сленгу..