Arrays 将ObjectsFromArray添加到现有数组的开头

Arrays 将ObjectsFromArray添加到现有数组的开头,arrays,swift,nsmutablearray,Arrays,Swift,Nsmutablearray,将现有数组添加到另一个数组的开头时遇到问题。 例如: 可变ID数组包含1,2,3,4,5&idArray数组包含6,7,8 self.MutableID.addObjectsFromArray(idArray as [AnyObject]) //currently puts values to the end of the array not the beginning 这段代码输出1,2,3,4,5,6,7,8,但我希望它输出6,7,8,1,2,3,4,5 我需要在self.MutableI

将现有数组添加到另一个数组的开头时遇到问题。 例如: 可变ID数组包含1,2,3,4,5&idArray数组包含6,7,8

self.MutableID.addObjectsFromArray(idArray as [AnyObject])
//currently puts values to the end of the array not the beginning
这段代码输出1,2,3,4,5,6,7,8,但我希望它输出6,7,8,1,2,3,4,5


我需要在self.MutableID的开头添加值。有没有关于如何实现此目标的建议?

此问题是解决Objective-C中问题的快速版本

self.MutableID.insertContentsOf(idArray as [AnyObject], at: 0)
如果出于任何原因,我们必须使用Objective-C的
NSArray
NSMutableArray
,那么我们可以简单地在我的回答中使用代码的快速翻译:

let range = NSMakeRange(0, newArray.count)
let indexes = NSIndexSet(indexesInRange: range)
oldArray.insertObjects(newArray as [AnyObject], atIndexes: indexes)
其中,
oldArray
是一个
NSMutableArray
newArray
NSArray
NSMutableArray

或另一种方法,追加并重新分配:

oldArray = newArray.arrayByAddingObjectsFromArray(oldArray as [AnyObject])


但最正确的做法是使用Swift数组类型,然后使用
insertContentsOf(uu:Array,at:Int)
方法,如前所述。

NSMutableArray具有insertObject方法

self.MutableID.insertObjects(otherArray as [AnyObject], atIndexes: NSIndexSet(indexesInRange: NSMakeRange(0, otherArray.count)))
或者,您可以将可变数组分配给swift数组,并使用insertContentsOf方法;)


NSMutableArray没有成员InsertConsents,因此当您使用Swift时,不应直接使用
NSArray
NSMutableArray
。使用
var-MutableID:[Int]
代替。您不能将对象从
[AnyObject]
添加到
[Int]
@SlopTonio如果您需要使用
NSMutableArray
,您的问题应该通过不仅仅是标记来说明这一点。@nhgrif无需将
idArray
转换为
[AnyObject]
。如果真的有必要,也可以使用
var MutableID:[AnyObject]
self.MutableID = NSMutableArray(array: [1,2,3,4])
var otherArray = NSMutableArray(array: [6,7,8,9])

var swiftArr : [AnyObject] = self.MutableID as [AnyObject]
swiftArr.insertContentsOf(otherArray as [AnyObject], at: 0)