乱数を作成し、次のようにNSNumberオブジェクトに保存しています。
NSNumber *index = [NSNumber numberWithUnsignedInt:arc4random_uniform(2^32-1)];
私も試しました:
NSNumber *index = [NSNumber numberWithUnsignedInt:arc4random_uniform(4294967295)];
NSNumber *index = @(arc4random_uniform(4294967295));
ある時点で、私は次のように番号1も割り当てています。
NSNumber *index = @(1);
これは私に正の数だけを与えるはずです。
後で、次のようにこれらの番号を印刷します。
NSString *string = [NSString stringWithFormat:@"%@", index];
これにより、乱数にいくつかの負の値が与えられ、1は1として出力されます。
NSString *string = [NSString stringWithFormat:@"%u", index.unsignedIntValue];
私は正の数だけを取得します-私はそうします-しかし今、1もいくつかの大きな正の数として突然印刷されています。
何が起きてる?u_int32(arc4randomが返す)をNSNmberに正しく格納し、それらが正のみであることを確認するにはどうすればよいですか?