У меня есть Rectangle объект со следующим интерфейсом:цель C performselector с аргументами целочисленных объектов дает значение мусора
@interface Rectangle : NSObject
@property int height, width;
-(void) setWidth:(int)w andHeight: (int)h;
@end
У меня есть implementaion этого и объект (скажем r
), сделанный из него. Когда я называю
[r setWidth: 5 andHeight: 6];
я получить правильные результаты, когда я проверяю через [r height]
. Однако, когда я использую performselector
сделать то же самое:
NSNumber *myNumber = [NSNumber numberWithInt:45];
[r performSelector:@selector(setWidth:andHeight:) withObject:myNumber
withObject:myNumber];
вызова [r height]
печатает некоторые ценностные мусора (выглядит как какой-то адрес) вэнь ожидаемое значение является 45. Что я делаю неправильно?
'NSNumber' не то же самое, как' int'. Ваш метод не принимает объекты NSNumber в качестве параметров. BTW - почему вы используете 'performSelector' вместо прямого вызова метода? – rmaddy
он просто не поддерживается. –
@maddy, нет особой причины, просто экспериментируйте. – SexyBeast