2015-12-10 1 views
0

У меня возникли проблемы с добавлением существующего массива в начало другого массива. Например: MutableID массив содержит 1,2,3,4,5 & IdArray массив содержит 6,7,8addObjectsFromArray в начало существующего массива

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

http://stackoverflow.com/a/22492787/2792531 – nhgrif

+1

Возможный дубликат [NSMutableArray - Добавить массив при запуске] (http://stackoverflow.com/questions/22492706/nsmutablearray-add-array-at-start) –

ответ

0

NSMutableArray имеет метод insertObjects.

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

Или вы можете назначить изменяемый массив быстрым массива и использовать 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) 
+1

Спасибо, это сработало! – SlopTonio

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

NSMutableArray не имеет член insertConsentsOf – SlopTonio

+1

Когда вы используете Swift, вы не должны использовать 'NSArray' и' NSMutableArray 'непосредственно. Вместо этого используйте 'var MutableID: [Int ]'. – fluidsonic

+0

Вы не можете добавлять объекты из '[AnyObject]' в '[Int]'. – nhgrif

0

Этот вопрос является версией Свифта из this question, который решает проблему в 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 является a NSMutableArray и newArray: NSArray или NSMutableArray.

Или другой подход, добавлять и переназначить:

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

Но самое правильное, что нужно сделать было бы использовать Swift тип массива, а затем использовать метод insertContentsOf(_: Array, at: Int) как fluidsonic's answer описывает.

Смежные вопросы