Swiftで遊ぼう! - 323 - My Picker Project : arc4randomに関して
Swiftで遊ぼう!の古い記事-> Life-LOG OtherSide
質問 : Swiftで遊ぼう! - 252 - FaceViewプロジェクト始動 - Swiftで遊ぼう! on Hatena
Beginning iPhone Development with Swift: Exploring the iOS SDK
- 作者: David Mark,Jack Nutting,Kim Topley,Fredrik Olsson,Jeff LaMarche
- 出版社/メーカー: Apress
- 発売日: 2014/11/19
- メディア: Kindle版
- この商品を含むブログを見る
DependentPickerViewControllerクラスで重要なのは、まずボタンを押してランダムに表示が変わるシステムです。
久しぶりにランダム発生の話題が出てきましたが、すっかり忘れています(^_^;)
あの頃は良く分かってなかったですね。
まだキャスティングも初期化処理の意味も分かってなかったんで関数の使い方も納得はできてなかったです。
- arc4random()
- arc4random_uniform()
arc4random()間数で擬似的にUInt32型の数字が生成して、ランダムの範囲は、余剰を求める方法です。
「arc4random() % 10」にすると「0から9」、「arc4random() % 4」だったら「0から3」になるけど、余りを求める方法は偏りがでてくるのでこれを修正したarc4random_uniform()を使うことを勧めています。
「arc4random_uniform(10)」というように「()」内に範囲を入れればいいんです。
注意点といえば、「型」ですね。生成される整数は「Uint32」になるので、Swiftでお馴染みのInt型と異なります。
しかし、何が違うのでしょう?
googleで調べて参考サイトを2つほど
この2つのリンクを読むことで、分かったつもりだったキャストも誤解していたことに気がつきました。SwiftのInt型は環境により値が変わるようです。32ビット環境なら32bit、64ビット環境なら64bit。しかしUInt32奈良、32ビット、64ビットどちらの環境でも32bitになります。
今日はランダム数の復習でした。