Контекстный тип «Любой» нельзя использовать со словарным литералом Swift. - PullRequest
0 голосов
/ 27 апреля 2018

Я использую этот код в двух файлах, но только один файл показывает эту ошибку.

Контекстный тип «Любой» нельзя использовать со словарным литералом

Почему? Этот код 2 одинаков, почему только один получил ошибку? Что не так в этом коде?

let userId = user!["userId"] as! String
let bookCid = NSUUID().uuidString
let param = ["message":"addAccBook",
                 "accountbook":
                    [
                        "bookcid": bookCid!,
                        "accbookname": "",
                        "accbooktype": "",
                        "category": "",
                        "user": userId
    ]] as [String:Any]

enter image description here enter image description here

1 Ответ

0 голосов
/ 27 апреля 2018

Ошибка вводит в заблуждение. Фактическая ошибка

Невозможно принудительно развернуть значение необязательного типа 'String'

uuidString возвращает необязательный String, поэтому вы не должны добавлять восклицательный знак

let userId = user!["userId"] as! String
let bookCid = NSUUID().uuidString

let param : [String:Any] = ["message":"addAccBook",
                            "accountbook":
                               ["bookcid": bookCid,
                                "accbookname": "",
                                "accbooktype": "",
                                "category": "",
                                "user": userId]]

Вместо того, чтобы использовать в мостике тот тип, который я рекомендую аннотировать.

...