【发布时间】:2014-08-23 04:49:36
【问题描述】:
当我在 swift 中使用单一类型数组时,我可以使用不同类型的操作(追加、+= 等)将项目添加到我的数组中,例如此代码有效:
var arr = [1, 2, 3, 4, 5]
arr[0...2] = [-1, -2, -3]
arr += 6
arr.append(-3)
arr += [8, -3, 1, 2]
//arr is now [-1, -2, -3, 4, 5, 6, -3, 8, -3, 1, 2]
但是当我用多种类型的项目初始化我的数组时,它们都不起作用:
var arr = ["Hello", -3, 4.5, "Hi"]
var arr2:AnyObject = ["hi", -3.4, 2]
arr[0...2] = [-1, -6.7, "hello"] // Cannot assign to the result of this expression
arr.append(1.2) // 'NSArray' does not have a member named 'append'
arr += [1, "Error", -3.2] // Could not find an overload for '+=' that accepts the supplied arguments
arr2.append("hello") // 'AnyObject' does not have a member named 'append'
arr.arrayByAddingObject("This works!")
arr2.arrayByAddingObject("This works too!")
我意识到当我使用 AnyObject 时,我的数组变成了一个 NSArray(实际上是 NSMutableArray) 我怎样才能使用 AnyObject 类型创建一个普通的 swift 数组,以便我可以使用有用的操作,如 '+=' 或 append 之类的函数。
【问题讨论】:
标签: ios objective-c arrays swift xcode6