我在model.h以下聲明:中的NSMutableArray
@interface Model: NSObject {
NSMutableArray *myMutableArray;
....
}
@property (nonatomic) double myDouble;
在model.m相應的@synthesize:
@synthesize myDouble;
然後我有以下二傳控:
-(void) setMyDouble: (double) newDouble{
myDouble = newDouble;
[myMutableArray addObject:[NSNumber numberWithDouble:myDouble]];
}
在數組賦值後放置一個斷點,調試器爲myMutableArray顯示以下內容:
myMutableArray =(_NSArrayM *)0x631c450 1對象
0 =(NSCFNumber *)0x631c6a0
所以,我的雙似乎並沒有正確地進入數組。我有後續分配給這個數組的NSStrings,在調試器中顯示正常。 myDouble和newDouble的值都很好(通常只是一個整數)。
我讀過幾個關於將雙精度賦值給NSMutableArrays的線程,還沒有發現任何不尋常的東西。任何指導將不勝感激。
更新
看來,代碼是正確的,但我不明白的是,調試器顯示的NSNumber的地址,而不是它的價值。感謝大家回覆,非常感謝! :)
如果我忽略了某些內容,請糾正我,但您的調試器輸出顯示數組中存在* NSNumber。那麼問題是什麼? – DarkDust
對不起,我應該更清楚。在典型的調試場景中,myDouble將是一個整數,例如數字9.調試器顯示myDouble爲9,但顯示如上所示的myMutableArray條目。 –
不要錯誤地將NSNumber對象的地址作爲其值。 – Eiko