2015-04-23 2 views
1

Я пытаюсь создать словарь, как здесь:Невозможно добавить словари с нулевыми значениями в массиве в скор

var dicItem = ["dataOfChange": 21-01-2012, "item": nil, "orderer": nil, "song": 1, "itemId": 3447, "petro": nil] 

Я создаю dicItem в loop и в цикле при создании dicItem Я хочу, чтобы добавить его к массив: array.append(serStatdicItemusJSON)
Это мой массив:

var data = [[String:AnyObject]]() 

Но я получаю следующее сообщение об ошибке при попытке добавить в массив:

fatal error: attempt to bridge an implicitly unwrapped optional containing nil 

Я думаю, что это из-за ноля, но не может понять, как его решить.

+0

Ваш 'dicItem' имеет тип' [String, Int] ', так как вы не используете' "" '. Это только опечатка с вашей стороны или нет в коде кода '' ''? – Apoorv

ответ

3

элемент в словаре должен быть objectnil не является объектом, и именно поэтому вы получили ошибку

Существует несколько решений:..

  1. if заявление, чтобы проверить, является ли значение nil. Добавляйте только пару ключ/значение в словарь, если значение не равно nil.

  2. NSNull, который является объектом, а не nil.

  3. написать функцию преобразования nil в empty string ("") и вызвать функцию каждый раз, когда вы хотите что-то добавить в словарь.

+0

'опционально ?? NSNull' на самом деле хорошая идея –

0

Класс NSNull определяет единичный объект, который используется для представления нулевых значений в ситуациях, когда ноль запрещен в качестве значения (обычно в объекте коллекции, такие как массив или словарь).»

Apple Developer

4

Вы должны установить тип, как [String:AnyObject?]

var dicItem: [String:AnyObject?] = ["dataOfChange": 21-01-2012, "item": nil, "orderer": nil, "song": 1, "itemId": 3447, "petro": nil] 
Смежные вопросы