Ответ 1
Параметры литералов (значения и ключи вашего словаря) не должны быть nil
.
Если вы предпочитаете конструктор, который менее строг, вы можете вместо этого использовать +[NSDictionary dictionaryWithObjectsAndKeys:]
.
Я создаю собственный класс панели навигации и настраиваю его атрибуты заголовка, используя следующий код:
self.titleTextAttributes = @{ UITextAttributeFont: bariol,
UITextAttributeTextColor: [UIColor whiteColor]
};
Однако, когда я запускаю код, он возвращает следующее сообщение об ошибке:
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[__NSPlaceholderArray initWithObjects:count:]: attempt to insert nil object from objects[1]'
Я использую Xcode 4.6 и работаю на устройстве с помощью iOS 6.
Параметры литералов (значения и ключи вашего словаря) не должны быть nil
.
Если вы предпочитаете конструктор, который менее строг, вы можете вместо этого использовать +[NSDictionary dictionaryWithObjectsAndKeys:]
.
Похоже, ваш bariol
объект nil
. Вы не можете хранить nil
в словаре.
Edit:
Собственно, вы уверены, что правильная строка кода? Ваши ссылки на ошибки NSPlaceholderArray
, что говорит о проблеме с литералом @[]
, а не @{}
.
Эта ошибка, кажется, где-то в другом месте. Это указывает на ошибку массива на объекте '1'. В вашем случае у вас есть словарь, а объект "1" - UITextAttributeTextColor: [UIColor whiteColor]
, который никогда не будет равен нулю.