2009-07-01 2 views
30

NSNumberが作成された後に、NSNumberが別のNSNumberを指すことなく変更する方法はありますか?NSNumberの値を変更する

 
NSNumber *num = [NSNumber numberWithInt:0]; 
num = [NSNumber numberWithInt: 1]; // now num points to a different object, which I don't want. I want it the same object still, but different value. 

答えて

41

NSNumberは不変です。実際、それはNSValueのサブクラスであり、すべてのNSValuesは不変です。

+1

NSMutableNumberが存在しないのはちょっと奇妙です。 –

+1

実際には、「変更可能な」番号が必要な場合は、プリミティブを使用することになります。 NSNumberは、シリアライゼーション、辞書のキー、そしてそれらの行に沿ったものにもっと便利です。 –

+4

@MarcCharbonneau数値が可変であることが必要な時があります。私はちょうど1つに出くわしました...代わりにNSMutableStringに自分の番号を格納することになりました(私は変わったNSDictionaryに変更可能な整数を格納するために自分のクラスを定義することはできませんでした)。 –

10

いいえ、NSNumberの値を変更することはできません。

たとえば、this postを参照してください。

関連する問題