2016-05-31 11 views
0

У меня есть функция, определенной ниже:Swift 2,2 - не может индексировать на тип значения '[Dictionary <String, AnyObject>]' с индексом типа 'String'

private func append(inout ret: [Dictionary<String, AnyObject>]?, element: Dictionary<String, AnyObject>) { 

    if ret == nil { 
     ret = [Dictionary<String, AnyObject>]() 
     ret?.append(element) 
     return 
    } 

    let retGateways = ret!["gateways"] as! [Dictionary<String, AnyObject>] // ERROR: Cannot subscript... 

    // more commands... 
} 

Где ret может быть:

[[“name”: “NameA”, “gateways”: [[“id”: “ID1”, “name”: “Name1”], [“id”: “ID2”, “name”: “Name2”]]]] 

и element может быть

[“name”: “NameB”, “gateways”: [[“id”: “ID3”, “name”: “Name3”], [“id”: “ID4”, “name”: “Name4”]]] 

ошибка, что я получил, Cannot subscript a value type of '[Dictionary<String, AnyObject>]' with an index of type 'String'.

Здесь я ссылаюсь на некоторые темы, но он по-прежнему не уничтожает эту ошибку.

Пожалуйста, покажите мне, как.

Thanks

ответ

0

О, я вижу.

В моей функции ret является Array, а не Dictionary.