将数组多个对象添加到Swift 3中的[Any]

将数组多个对象添加到Swift 3中的[Any],swift,swift3,Swift,Swift3,我试图理解将不同类型的多个对象添加到[Any]数组的最佳方法。这在Swift 3中的操场上不起作用,除非我将数组和数组中的对象显式地强制转换为任何类型 消息失败-无法将“[Any]”类型的值转换为预期的参数类型“inout”我认为这是Swift编译器发出无用错误消息的另一种情况。真正的问题是AnyObject意味着任何对象引用类型;结构(Int和String都是)不算,因为它们是值类型。如果您想引用任何类型,请使用any。inout错误与swift中的指针和引用类型有关。。。您可以发布您尝试在其

我试图理解将不同类型的多个对象添加到[Any]数组的最佳方法。这在Swift 3中的操场上不起作用,除非我将数组和数组中的对象显式地强制转换为任何类型


消息失败-无法将“[Any]”类型的值转换为预期的参数类型“inout”

我认为这是Swift编译器发出无用错误消息的另一种情况。真正的问题是AnyObject意味着任何对象引用类型;结构(Int和String都是)不算,因为它们是值类型。如果您想引用任何类型,请使用any。

inout错误与swift中的指针和引用类型有关。。。您可以发布您尝试在其中执行此操作的整个方法吗?@MSU_Bulldog这是整个代码-它在一个操场上。@Alex您需要显式指定任何对象的数组类型。anyArray+=字符串作为[AnyObject]这篇文章中被标记为重复的答案是我一直在寻找的,也是我问题的正确答案-谢谢。啊,很公平,但这并不能解决问题,错误消息只是更改为[Any],而不是[AnyObject],因此错误来自尝试添加[Any]和[Any][String]?这真的很奇怪-我试过了,自动完成向我建议了contentsOf:,但编译器说“Extrandous argument label contentsOf:”-这是一个错误,所以我甚至不能用它进行编译。我使用的是Xcode 8.2.1确保您显式地将数组强制转换为[Any]否则编译器将抛出无关的参数标签片段一旦您将arr1和arr2的类型声明为[Any],您就可以在OP的示例中执行arr+=arr1或anyArray+=strings。无需appendcontentsOf:进行编辑以匹配+=语法
var anyArray: [Any] = []
let strings = ["sup", "cool"]
let numbers = [5, 3]
anyArray += strings
anyArray += numbers
anyArray
    var arr = [Any]()
    let arr1:[Any] = [2,3,4]
    let arr2:[Any] = ["32","31"]
    arr += arr1
    arr += arr2
    print(arr)