Когда я установил c
в a
Как присвоить значение [любой]
var a: [Any]
var c: Array<PostCategory>
ошибка показали:
не может преобразовать значение типа 'массив' ожидаемого типа аргумента [Any]
как решить проблему?
Когда я установил c
в a
Как присвоить значение [любой]
var a: [Any]
var c: Array<PostCategory>
ошибка показали:
не может преобразовать значение типа 'массив' ожидаемого типа аргумента [Any]
как решить проблему?
Сообщение об ошибке немного вводит в заблуждение, но попробуйте инициализировать массив перед присвоением его:
var c: Array<PostCategory> = []
... или ...
var c = Array<PostCategory>()
Держу пари, ваш PostCategory
является struct
. По-видимому, структурные массивы не конвертируются в массив Any. Это странно, потому что все типы соответствуют протоколу Any.
Если вы изменили PostCategory
на class
, он должен работать нормально. Возможно, вам потребуется создать новый инициализатор для класса, поскольку классы не дают вам тот же инициализатор по умолчанию, что и структура.
Да , PostCategory - это структура, есть ли что-либо эквивалентное Any для struct –
Где выполняется фактическое присвоение? – Alexander
Возможный дубликат [Почему не \ [SomeStruct \] конвертируется в \ [Any \]?] (Http://stackoverflow.com/questions/37188580/why-arent-somestruct-convertible-to-any) – Hamish