2016-05-12 5 views
-2

Когда я установил c в aКак присвоить значение [любой]

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

ошибка показали:

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

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

+0

Где выполняется фактическое присвоение? – Alexander

+1

Возможный дубликат [Почему не \ [SomeStruct \] конвертируется в \ [Any \]?] (Http://stackoverflow.com/questions/37188580/why-arent-somestruct-convertible-to-any) – Hamish

ответ

0

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

var c: Array<PostCategory> = [] 

... или ...

var c = Array<PostCategory>() 
0

Держу пари, ваш PostCategory является struct. По-видимому, структурные массивы не конвертируются в массив Any. Это странно, потому что все типы соответствуют протоколу Any.

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

+0

Да , PostCategory - это структура, есть ли что-либо эквивалентное Any для struct –

Смежные вопросы