現在の会社に入社以来、大部分はAPIの設計、実装、お守りなどサーバーサイド的なことしかしていないので、クライアント寄りな仕事もしてみたくなってるkimikatoです。
お久しぶりです。
先月末ぐらいからSwift 2.0でのプログラミングを始めました。
さて、配列に入ったデータをランダムにシャッフルしたかったのでググってみたわけですが、参考リンク先のコードでは下記のようなエラーが発生して使えなかったので修正してみました。
Result of call to non-mutating function ‘sort’ is unused; use ‘sortInPlace’ to mutate in-place
環境
- OS X
- OS X El Capitan ( 10.11.1 )
- Xcode
- Version 7.1 (7B91b)
- Swift
- 2.0
コード
// // ArrayExtension.swift // ArrayShuffleTest // // Created by Kiminori Kato on 2015/11/03. // Copyright © 2015年 Kiminori Kato. All rights reserved. // import Foundation extension Array { mutating func shuffle(count: Int) { for _ in 0..実行例
Arrayy型の場合
var arrayList: [String] = [] arrayList = ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10"] // シャッフル前の配列 print(arrayList.joinWithSeparator(",")) // => 1,2,3,4,5,6,7,8,9,10 // 1回目のシャッフル arrayList.shuffle(arrayList.count) print(arrayList.joinWithSeparator(",")) // => 6,1,8,5,3,9,2,4,7,10 // 2回目のシャッフル arrayList.shuffle(arrayList.count) print(arrayList.joinWithSeparator(",")) // => 9,8,1,10,5,6,2,3,4,7NSMutableArray型の場合
var result: String = "" var arrayList: NSMutableArray = [] arrayList = ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10"] // シャッフル前の配列 result = (arrayList as NSArray as! [String]).joinWithSeparator(",") print(result) // => 1,2,3,4,5,6,7,8,9,10 // 1回目のシャッフル arrayList.shuffle(arrayList.count) result = (arrayList as NSArray as! [String]).joinWithSeparator(",") print(result) // => 10,4,1,2,5,7,3,6,8,9 // 2回目のシャッフル arrayList.shuffle(arrayList.count) result = (arrayList as NSArray as! [String]).joinWithSeparator(",") print(result) // => 5,1,8,6,9,4,10,2,3,7最後に
kiiitaさん、ありがとうございます。
参考リンク
コメント