2015-05-13 3 views
0

Я получаю initWithObjects: Кол-во:]: попытка вставить ноль объект из объектов [0] в следующей строке:NSString из NSString установить в качестве ключа в NSMutableDictionary

[contentsOfCocktails setObject:[NSMutableArray arrayWithObject: recipeTitleA] forKey:cocktailsTitleA]; 

recipeTitleA является строка Я создаю из свойства класса cocktails.recipeID, равного A. Однако я получаю recipeTitleA равным nil в окне отладки.

Вот где я поставил cocktails.recipeID равный recipeTitleA:

if ([cocktails.recipeID isEqualToString:@"A"]){ 
    recipeTitleA = cocktails.recipeID; 
} 

Это правильный способ установить строку, равную другую строку для того, чтобы использовать его в качестве ключа в NSMutableDictionary?

Короче говоря: я пытаюсь извлечь идентификаторы recipeID, которые равны A, и установить их как ключ в словаре. Я буду делать это с другими буквами в качестве ключей. Затем я собирался хранить их в массиве, в котором я мог бы создавать разделы в представлении таблицы. Данные вводятся с FMDB.

Я новичок в obj-c и новичок в форматировании данных с массивами и словарями. Любая помощь будет принята с благодарностью!

+0

Если отладчик сообщает вам, что 'recipeTitleA' равен нулю, это означает, что оно равно нулю или вы не можете добавить nil в массив. Поэтому вам нужно выяснить, почему это так, ваш способ настроить ваш «NSMutableDictionnary» хорош. – tbaranes

+0

Является ли 'cocktails.recipeID' нолем? Где вы это установили? –

+0

@Ckouta Я смотрел повсюду, и я считаю, что весь класс коктейлей загружается как ноль. Может быть, потому, что я не получаю данные с FMDB до тех пор, пока не будет в tableviewcontroller? Я выделяю и инициализирую Коктейли выше заданного кода в вопросе. – underriterd

ответ

0

Похоже, вы правильно проводите сравнение строк. Установите точку останова на if ([cocktails.recipeID isEqualToString:@"A"]){ и посмотрите, что вы получаете за cocktails.recipeID, если это nil вернитесь в свое имущество cocktails.recipeID и посмотрите, правильно ли он установлен.

+0

Похоже, что класс «Коктейли» загружается как ноль на эту строку, что странно, учитывая, что я выделил и инициализировал его прямо выше. И я назвал [self recipeCocktails] прямо над этим. '@property (nonatomic, copy) NSString * recipeID' - это то, как он объявлен в Cocktails.h ... поэтому я предполагаю, что он настроен правильно. – underriterd

Смежные вопросы