2015-08-11 6 views
0

Я пытаюсь инициализировать словарь константу сСтрока»не конвертируются в„StringLiteralConvertible“в Xcode 7 Beta 5

["updateType" : "moveRow", "data" : rows]. 

строк является массивом. Я как:

let update = ["updateType" : "moveRow", "data" : rows] 

Я также попытался:

let update: Dictionary< String, AnyObject> = ["updateType" : MoveRow", "data" : rows] 

и

let update: [String : AnyObject] = ["updateType" : "moveRow", "data" : rows] 

в каждом конкретном случае, я получаю и ошибка ключа "data", который говорит:

String 'не конвертируется в' StringLiteralConvertible '.

Может кто-нибудь объяснить, что происходит?

+0

Как точно определен 'rows'? – MirekE

+0

'var rows: Array <Словарь >?' Я добавил к нему данные с помощью .append (["item1": anInt, "item2": aFloat]) –

+0

Когда добавляется только 1 элемент к инициализации , оно работает. например, 'let update: Dictionary = [" data ", rows]' или 'let update: Dictionary = [" updateType ": MoveRow"] ' –

ответ

1

Проблема, кажется, в вашем создании rows как опционно:

var rows: Array<Dictionary<String, AnyObject>>? 

Если вы можете избавиться от необязательных, он должен начать работать. Например.

let d = ["updateType" : "moveRow", "data" : rows!] 

... или путем создания строки, как это:

var rows = Array<Dictionary<String, AnyObject>>() 
+0

отлично спасибо –

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