addObjectsFromArray到现有数组的开头

时间:2015-12-10 13:17:18

标签: arrays swift nsmutablearray

我在将现有数组添加到另一个数组的开头时遇到问题。 例如:  MutableID数组包含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的开头添加的值有关如何实现此目的的任何建议吗?

3 个答案:

答案 0 :(得分:0)

self.MutableID.insertContentsOf(idArray as [AnyObject], at: 0)

答案 1 :(得分:0)

这个问题是this question的Swift版本,它解决了Objective-C中的问题。

如果我们必须,无论出于何种原因,使用Objective-C的NSArrayNSMutableArray,那么我们可以在我的回答中简单地使用Swift的代码翻译有:

let range = NSMakeRange(0, newArray.count)
let indexes = NSIndexSet(indexesInRange: range)
oldArray.insertObjects(newArray as [AnyObject], atIndexes: indexes)

oldArrayNSMutableArraynewArrayNSArrayNSMutableArray

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

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

但最正确的做法是使用Swift Array类型,然后使用insertContentsOf(_: Array, at: Int)方法,如fluidsonic's answer所述。

答案 2 :(得分:0)

NSMutableArray具有insertObjects方法。

self.MutableID.insertObjects(otherArray as [AnyObject], atIndexes: NSIndexSet(indexesInRange: NSMakeRange(0, otherArray.count)))

或者您可以将可变数组分配给swift数组并使用insertContentsOf方法;)

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)