Я пытаюсь добавить [Dictionary<String,Any!>]
[Dictionary<String,Any?>]
кперевод [Словарь <String,Any?>] на [Словарь <String,Any!>]? скор 3
, но я получаю эту ошибку:
Cannot Convert value of Type [Dictionary] to expected argument type of [Dictionary]
Хотя я не получаю эту ошибку компиляции с swift2
.
Вот мой код:
class A{
var statistics = [Dictionary<String,Any!>]();
func1(){
let oldStatiscs = self.func2()
//i am getting the error here.
self.statistics.append(oldStatiscs)
}
func2() -> [Dictionary<String,Any?>]{
}
}
Почему я получаю эту ошибку на swift3? Почему бы мне не получить эту ошибку с помощью swift2? Как решить эту проблему?
Благодаря
Любое необязательное значение в объекте Swift-in Objective-C даже не допускается - словарь бессмыслен, потому что по определению значение «nil» означает отсутствующий ключ, и вы можете удалить ключ, назначив значение «nil». – vadian
@vadian благодарю вас за ваш комментарий, да, я знаю, но в настоящее время я не могу изменить его в словаре. есть ли какие-либо решения для моей проблемы? –
david
'[Словарь]' является незаконным в Swift 3 как тип переменной (он может существовать только в небольшом числе мест). Вы должны изменить его. Если вы не можете его изменить, вы не можете выполнить обновление до Swift 3. Вы еще не видите ошибки, но если вы исправите все другие ошибки, вы, наконец, столкнетесь с «Неявно развернутыми опциями можно разрешить только на верхнем уровне и как результат функции ». Вы больше не можете использовать этот тип (это была бессмыслица в Swift 2, это незаконно в Swift 3). –