次のコードスニペット:NSDictionaryに整数値を正しく設定する方法は?
NSLog(@"userInfo: The timer is %d", timerCounter);
NSDictionary *dict = [NSDictionary dictionaryWithObject:[NSNumber numberWithInteger:timerCounter] forKey:@"timerCounter"];
NSUInteger c = (NSUInteger)[dict objectForKey:@"timerCounter"];
NSLog(@"userInfo: Timer started on %d", c);
はの線に沿って出力生成:
2009-10-22 00:36:55.927 TimerHacking[2457:20b] userInfo: The timer is 1
2009-10-22 00:36:55.928 TimerHacking[2457:20b] userInfo: Timer started on 5295968
を(FWIW、タイマカウンタがNSUIntegerである。)
私は何かが欠けてると確信していますかなり明白で、それが何であるかだけは分かりません。
実際には、NSUIntegerの場合は、-unsignedIntegerValueを使用する必要があります。 –
(NSNumberを作成するために '+ [NSNumber numberWithUnsignedInteger:]'が実際には署名されていない場合)。 – Wevah
'[NSNumber numberWithInteger:timerCounter]'の代わりに '@(timerCounter)'を使うことができます。 – fpg1503