私は奇妙な問題を抱えています(あなたが私に尋ねれば奇妙です)。オブジェクトを使用しNSNumber
て数値(doh)を格納しています。「変更」しようとすると、アプリケーションがクラッシュします。私が使用しているコードは次のようになります。
if ([frequency intValue] > 19999)
return;
frequency = [NSNumber numberWithInt:([frequency intValue] + 1)]; //I think this line is causing me the problem
[freqLabel setText:[NSString stringWithFormat:@"%i Hz", [frequency intValue]]];
NSNumber
これが呼び出されるたびに値を書き込むラベルの頻度とfreqLabelはどこにありますか。なぜこれが間違っているのですか?初めて呼び出すときに動作します。NSNumber numberWithInt
頻度に割り当てようとしている新しいオブジェクトを常に返すのですか?これを修正するにはどうすればよいですか?NSNumber
の値を変更する正しい方法は何ですか?
私の悪い英語でごめんなさい(間違いがあれば)。
編集:エラーログは次のようになります:
[__NSCFType intValue]: unrecognized selector sent to instance 0x73430e0
2012-05-09 16:39:28.064 MyApp[31939:10703] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFType intValue]: unrecognized selector sent to instance 0x73430e0'
*** First throw call stack:
(0x17a6022 0x28afcd6 0x17a7cbd 0x170ced0 0x170ccb2 0x4821 0x17a7e99 0x49d14e 0x49d0e6 0x543ade 0x543fa7 0x543266 0x4c23c0 0x4c25e6 0x4a8dc4 0x49c634 0x2e49ef5 0x177a195 0x16deff2 0x16dd8da 0x16dcd84 0x16dcc9b 0x2e487d8 0x2e4888a 0x49a626 0x1cca 0x1c15)
terminate called throwing an exception
ただし、常にこのエラーが表示されるとは限りません。EXC_BAD_ACCESSが発生する場合があります。変数を一時的に保存する必要がありNSNumber
ますか?