読者です 読者をやめる 読者になる 読者になる

また1からこつこつと

最高はひとつじゃないと信じてまたがんばります。

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コンパイラではコンパイルできない
CocoaCocoa 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のアプリ開発してるとあまり意識しないかもしれないけど、ぱっと使うときには不便でした