我在将现有数组添加到另一个数组的开头时遇到问题。 例如: 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的开头添加的值有关如何实现此目的的任何建议吗?
答案 0 :(得分:0)
self.MutableID.insertContentsOf(idArray as [AnyObject], at: 0)
答案 1 :(得分:0)
这个问题是this question的Swift版本,它解决了Objective-C中的问题。
如果我们必须,无论出于何种原因,使用Objective-C的NSArray
或NSMutableArray
,那么我们可以在我的回答中简单地使用Swift的代码翻译有:
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 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)