【发布时间】:2016-05-12 12:29:51
【问题描述】:
当我将c 设置为a 时
var a: [Any]
var c: Array<PostCategory>
显示错误:
无法将“数组”类型的值转换为预期的参数类型 [任何]
如何解决问题?
【问题讨论】:
-
实际分配在哪里?
当我将c 设置为a 时
var a: [Any]
var c: Array<PostCategory>
显示错误:
无法将“数组”类型的值转换为预期的参数类型 [任何]
如何解决问题?
【问题讨论】:
错误信息有点误导,但在分配之前尝试初始化数组:
var c: Array<PostCategory> = []
...或...
var c = Array<PostCategory>()
【讨论】:
我打赌你的PostCategory 是struct。显然 struct 数组不能转换为 Any 数组。这很奇怪,因为所有类型都符合 Any 协议。
如果您将PostCategory 改为class,它应该可以正常工作。不过,您可能需要为该类创建一个新的初始化程序,因为类不会为您提供与结构相同的默认初始化程序。
【讨论】: