幾天後我回到了我的一個ipad項目,並且發生了奇怪的事情。應用程序在我離開時運行得很好。傳遞給功能時參數值發生變化
我有很簡單的構造非常簡單的類
@interface MapPathPoint : NSObject {
int mX, mY;
}
- (id)initWithX:(int)x Y:(int)y;
@property int x, y;
@end
@implementation MapPathPoint
@synthesize x = mX, y = mY;
- (id)initWithX:(int)x Y:(int)y {
if(self = [super init]) {
mX = x;
mY = y;
}
return self;
}
@end
當我打電話
MapPathPoint *start = [[MapPathPoint alloc] initWithX:posX Y:posY];
我的MX和我將含有垃圾,不值我送。我甚至試圖用常數發送它
MapPathPoint *start = [[MapPathPoint alloc] initWithX:1 Y:0];
和結果是一樣的。當我調試它並進入init函數時,x和y的值看起來像內存中的隨機值。我嘗試清理/重建多次,重新啓動Xcode和我的Mac和iPad,但沒有任何幫助。只有自從我上次在該項目上工作以來發生的變化(據我所知)ipad操作系統更新到4.2.1(從3.2我認爲)
任何想法可能是什麼錯?
編輯: 當我將參數類型更改爲浮動時,一切都按預期工作。如果我使用int或unsigned int,則獲得在我的評論中指定的值。如果我嘗試使用unsigned short,我得到的全部爲0.
我看到這段代碼沒有錯。你完全肯定你傳入了兩個int文字,但仍然看到了錯誤的值?你看到了什麼值? – 2010-12-09 03:27:33
是的,我絕對肯定我通過了兩個字面值,你看到的是從我的代碼複製粘貼,並通過幾十個調試會話進行驗證。貌似值是0,如果我送0,1065353216(0x3f800000)1,1073741824(0x40000000之後)2 – Lope 2010-12-09 08:49:16