Я вернулся к одному из своих проектов 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 и mYбудет содержать мусор, а не значения, которые я отправил.Я даже пытался отправить его с постоянными числами
MapPathPoint *start = [[MapPathPoint alloc] initWithX:1 Y:0];
и результат тот же.Когда я отлаживаю его и захожу в функцию init, значения x и y выглядят как случайные значения из памяти.Я пытался очистить / перестроить несколько раз, перезапустил xcode и мой mac и iPad, но ничего не помогло.Единственное, что изменилось с тех пор, как я в последний раз работал над этим проектом, было (насколько я знаю) обновление ОС ipad до 4.2.1 (я думаю, с 3.2)
Есть идеи, что может быть не так?
РЕДАКТИРОВАТЬ: Когда я изменяю тип параметров на float, все работает как положено.Если я использую int или unsigned int, я получаю значения, указанные в моем комментарии ниже.Если я пытаюсь использовать unsigned short, я получаю только 0.