在NSMutableArray中存储NSNumber

Mic*_*old 0 iphone debugging xcode objective-c ios

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

@interface Model: NSObject {
NSMutableArray *myMutableArray;
....
}
@property (nonatomic) double myDouble;
Run Code Online (Sandbox Code Playgroud)

model.m中相应的@synthesize:

@synthesize myDouble;
Run Code Online (Sandbox Code Playgroud)

然后我有以下setter覆盖:

-(void) setMyDouble: (double) newDouble{
myDouble = newDouble;
[myMutableArray addObject:[NSNumber numberWithDouble:myDouble]];
}
Run Code Online (Sandbox Code Playgroud)

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

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

0 =(NSCFNumber*)0x631c6a0

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

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

更新

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

Emp*_*ack 7

看来你与混乱00 = (NSCFNumber *) 0x631c6a0.该0是数组中NSNumber的索引.如果从数组中检索对象并在NSLog中打印它,它将显示正确的值.你的代码似乎没有错.