現在(2015.08)、メインストリームのiOS端末には、32bitCPUを搭載したものと、64bitCPUを搭載したものの2種類あります。
私自身はアーキテクチャについて全くわかりませんが、これら2つのうち、一方では正常に動作するものの、もう一方ではエラーを発生させるプログラムがあります。
そのひとつがarc4random()です。
乱数を発生させる関数としてよく使われますが、これを使うとエラーが起きます。
64bit端末では正常に動作しますが、32bit端末ではエラーを吐いてクラッシュします。
私の勘では64bit対応が義務となった弊害かと思われます。
・解決法
arc4random_uniform(UInt32)を使う
内部の事は私には詳しくわかりません、が、arc4random()の代わりにarc4random_uniform(UInt32)を使うと、32bit端末でも64bit端末でも、いずれでも正常に動作します。
引数のUInt32には、乱数の数を与えてやります。
たとえばarc4random_uniform(10)は、0〜9の範囲でランダムに値を返します。
ちなみにarc4random()よりも"ランダムな"乱数となるようです。乱数発生にはarc4random_unidorm(UInt32)を使って下さい。
arc4random_uniform(UInt32)は返り値がUInt32型になるのだろうか...?