在NSMutableArray中存储NSNumber

时间:2011-06-30 12:08:36

标签: iphone objective-c ios xcode debugging

我在model.h中有以下声明:

@interface Model: NSObject {
NSMutableArray *myMutableArray;
....
}
@property (nonatomic) double myDouble;

model.m中的相应@synthesize:

@synthesize myDouble;

然后我有以下的setter覆盖:

-(void) setMyDouble: (double) newDouble{
myDouble = newDouble;
[myMutableArray addObject:[NSNumber numberWithDouble:myDouble]];
}

在数组赋值后设置一个断点,调试器为myMutableArray显示以下内容:

  

myMutableArray =(_ NSArrayM *)0x631c450 1个对象

     

0 =(NSCFNumber *)0x631c6a0

所以,我的双子似乎没有正确进入阵列。我随后为NSStrings的数组赋值,在调试器中显示正常。 myDouble和newDouble的值都很好(通常只是一个整数)。

我已经阅读了几个关于为NSMutableArrays分配双精度的线程,并没有发现任何异常的东西。任何指导都将不胜感激。

更新

看起来代码是正确的,但我没理解调试器显示NSNumber的地址而不是它的值。谢谢大家的回复,非常感谢! :)

2 个答案:

答案 0 :(得分:7)

您似乎对0中的0 = (NSCFNumber *) 0x631c6a0感到困惑。该0是数组中NSNumber的索引。如果从数组中检索对象并在NSLog中打印它,它将显示正确的值。你的代码似乎没有错。

答案 1 :(得分:1)

你忘了分配你的可变数组。调试你的应用程序,看看数组是否已分配。

修改

将您的功能名称更改为其他内容并查看其中的魔力。