arc4random_uniform()
Swiftで乱数を生成させる方法はいくつかあると思うんだけど、そのなかでもarc4random_uniform()に関してちょっと躓いたのでメモ。
arc4random_uniform()とは
arc4random_uniform()はarc4random()よりランダム度があがるらしい。
Objective-Cと戦うブログ: 乱数生成はarc4randomよりarc4random_uniformを使うといいらしい
基本的にこのメソッドを使って乱数を生成させてるんだけど、こいつが少しやっかいなんだよね
基本的な構文は以下のとおり
var num = arc4random(10)
これで10までの乱数がリターンされるけど、このnumの型がUInt32なんだ
だからInt型で使いたいときはキャストしないと行けない
var num:Int = Int(arc4random(10))
そして、このarc4random_uniform()は、標準Swiftコンパイラではコンパイルできない
CocoaかCocoa touchをインポートしないといけない
ためしにターミナルでSwiftを起動してみて同じように実行してみると
Welcome to Apple Swift version 2.0 (700.0.59 700.0.72). Type :help for assistance. 1> var num = arc4random(10) repl.swift:1:11: error: use of unresolved identifier 'arc4random' var num = arc4random(10)
このようにエラーがでる
ちなみにCocoaをインポートしてるPlaygroundだとコンパイルは通常に通る
あまり使いやすいとはいえないけど、このメソッドが一番楽に乱数を生成できるんだよな
iOSとかOSXのアプリ開発してるとあまり意識しないかもしれないけど、ぱっと使うときには不便でした