Ios 将特定类型的对象添加到通用数组<;任何>;斯威夫特?
如何将特定类型的对象添加到泛型数组:[Any]?我的理解是,任何物体都应该能够包含任何其他物体。这是正确的吗?不幸的是,当我将特定对象添加到通用数组时,会收到一条错误消息 范例 “SpecificItemType”类型的对象数组 这些对象的通用目标数组Ios 将特定类型的对象添加到通用数组<;任何>;斯威夫特?,ios,arrays,swift,casting,Ios,Arrays,Swift,Casting,如何将特定类型的对象添加到泛型数组:[Any]?我的理解是,任何物体都应该能够包含任何其他物体。这是正确的吗?不幸的是,当我将特定对象添加到通用数组时,会收到一条错误消息 范例 “SpecificItemType”类型的对象数组 这些对象的通用目标数组 var matchedResults:[Any] = [] matchedResults += results 错误消息 [Any] is not identical to UInt8 这里有什么问题?错误消息并没有真正起到帮助作用 还有一个
var matchedResults:[Any] = []
matchedResults += results
错误消息
[Any] is not identical to UInt8
这里有什么问题?错误消息并没有真正起到帮助作用
还有一个注意事项:有趣的是,可以使用append添加单个对象。所以下面的工作
matchedResults.append(results.first)
首先,将Any更改为AnyObject并尝试以下操作:
matchedResults+=(结果为[AnyObject])
首先将Any更改为AnyObject,然后尝试以下操作:
matchedResults+=(结果为[AnyObject])
首先将Any更改为AnyObject,然后尝试以下操作:
matchedResults+=(结果为[AnyObject])
首先将Any更改为AnyObject,然后尝试以下操作:
matchedResults+=(结果为[AnyObject])
编译器无法解析上的类型约束
func +=<T, C : CollectionType where T == T>(inout lhs: ContiguousArray<T>, rhs: C)
关于令人费解的错误,这是由于
+=
操作符上的重载造成的。编译器尝试解析运算符的各种版本,最终在此处找到此版本:
func +=(inout lhs: UInt8, rhs: UInt8)
可能这是它试图解决的最后一个问题,因此它在这里抛出一个错误,告诉您
[Any]
与lhs
的预期类型不同,即在本例中是UInt8
。编译器无法解决
func +=<T, C : CollectionType where T == T>(inout lhs: ContiguousArray<T>, rhs: C)
关于令人费解的错误,这是由于
+=
操作符上的重载造成的。编译器尝试解析运算符的各种版本,最终在此处找到此版本:
func +=(inout lhs: UInt8, rhs: UInt8)
可能这是它试图解决的最后一个问题,因此它在这里抛出一个错误,告诉您
[Any]
与lhs
的预期类型不同,即在本例中是UInt8
。编译器无法解决
func +=<T, C : CollectionType where T == T>(inout lhs: ContiguousArray<T>, rhs: C)
关于令人费解的错误,这是由于
+=
操作符上的重载造成的。编译器尝试解析运算符的各种版本,最终在此处找到此版本:
func +=(inout lhs: UInt8, rhs: UInt8)
可能这是它试图解决的最后一个问题,因此它在这里抛出一个错误,告诉您
[Any]
与lhs
的预期类型不同,即在本例中是UInt8
。编译器无法解决
func +=<T, C : CollectionType where T == T>(inout lhs: ContiguousArray<T>, rhs: C)
关于令人费解的错误,这是由于
+=
操作符上的重载造成的。编译器尝试解析运算符的各种版本,最终在此处找到此版本:
func +=(inout lhs: UInt8, rhs: UInt8)
可能这是它试图解决的最后一个问题,因此它在这里抛出一个错误,告诉您
[Any]
与lhs
的预期类型不同,即在本例中为UInt8
。解释得很好!解释得很好!解释得很好!解释得很好!