Как присвоить значение [любому]

Когда я установил c в a

var a: [Any]
var c: Array<PostCategory>

показанная ошибка:

невозможно преобразовать значение типа 'Array' в ожидаемый тип аргумента [Any]

Как решить проблему?

2 ответа

Сообщение об ошибке немного вводит в заблуждение, но попробуйте инициализировать массив перед его назначением:

var c: Array<PostCategory> = []

...или же...

var c = Array<PostCategory>()

Готов поспорить PostCategory это struct, Очевидно, структурные массивы не могут быть преобразованы в массив Any. Это странно, потому что все типы соответствуют любому протоколу.

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

Другие вопросы по тегам