Присвоение значения необязательной переменной - PullRequest
0 голосов
/ 13 мая 2019

Чтобы установить значение словаря, я делаю, как показано ниже.

var dic: [String:Any]?

dic = [String:Any]()

dic!["name"] = "my name"
dic!["email"] = "aaa@bbb.com"
dic!["nickname"] = "Grrrrrrrr"

Я думаю, что восклицательный знак (!) Является излишним.То есть, я бы хотел установить без '!'.

dic = [String:Any]()

dic["name"] = "my name"
dic["email"] = "aaa@bbb.com"
dic["nickname"] = "Grrrrrrrr"

Есть ли способ использовать вкратце, чтобы установить значение для необязательной переменной?

Ответы [ 2 ]

2 голосов
/ 13 мая 2019

Прочитав комментарии, приведенное ниже решение может быть тем, что вы ищете.

var dic = [String: Any]() //Empty dictionary

func processResultOfAlamofire(_ result: [String: Any]?) {
    dic = result ?? [String: Any]()
}

Если результат Alamo равен nil, dic будет пустым вместо nil. Оператор ?? может быть записан как:

if result == nil {
    dic = [String: Any]()
} else {
    dic = result!
}
1 голос
/ 13 мая 2019

Я думаю, что вы должны обновить свой код, не используйте прямой словарь в вашем viewcontroller.установите необязательную переменную в вашей модели.и когда вы используете эти значения, используйте его с условной проверкой, как, например, let value =thingOptional {}

или используйте guard в вашей функции вызова API, чтобы он никогда не обновлял и не влиял на любое представление, если вы получаете значения nullиз API

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...