Ответ Курта верен, foodItem.name имеет значение nil.
Чтобы предотвратить это, вы всегда можете проверить объекты на наличие нулей, прежде чем добавлять в словарь, или использовать следующий макрос для заменывсе ноль элементов с объектами NSNull:
#define n2N(value) (value ? value : [NSNull null])
Итак, используя этот макрос, ваш код выше будет выглядеть так:
NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:
[NSNumber numberWithInt:CellStyleLabelledStringCell], @"cellStyle",
@"name", @"fieldName",
@"Name", @"labelString",
n2N(foodItem.name), @"contentString",
@"foo", @"fookey",
nil];
Кроме того, нетнеобходимо типизировать результат от objectForKey:
до NSString
, так как этот метод возвращает идентификатор.