Arrays 将ObjectsFromArray添加到现有数组的开头
将现有数组添加到另一个数组的开头时遇到问题。 例如: 可变ID数组包含1,2,3,4,5&idArray数组包含6,7,8Arrays 将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
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)