2015-03-22 3 views
-1

Я нашел этот код, чтобы перетасовать массив:быстры NSMutableArray перетасовать

func shuffle<T>(inout array: [T]) { 
    for i in 1..<array.count { 
     let j = Int(arc4random_uniform(UInt32(i))) 
     (array[i], array[j]) = (array[j], array[i]) 
    } 
} 

, который отлично работает с

var arr = [1,2,3,4] 
shuffle(&arr) 
println(arr) 

Но как я могу использовать с NSMutableArray? Я попытался

var PicturesArray :NSMutableArray = [] 

shuffle(PicturesArray)as Array 
shuffle([PicturesArray]) 
shuffle(PicturesArray[]) 

, но не может найти любые ответы вероятно, что-то я делаю глупые спасибо за глядя

+0

См https://gist.github.com/robertmryan/e11a9fd983a115074b8e например Fisher-Yates перетасовка 'NSMutableArray' в Swift. – Rob

ответ

0

Вы должны бросить его.

var arr = NSMutableArray(array: [1,2,3,4,5]) 
var arr_ = arr as [AnyObject] 

shuffle(&arr_) 

shuffle(PicturesArray)as Array // This is syntax error 
shuffle([PicturesArray])  // This will make a new array with only one object inside 
shuffle(PicturesArray[])  // This is also syntax error 
+0

привет, ребята, такая дамба быстро это дает ошибку [AnyObject] 'не конвертируется в' inout [T] ' – user2164327

+0

Да, я запустил его на игровой площадке после того, как я ответил, проверьте мое обновление. – Arbitur

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