Я имею дело со старым проектом iPhone OS 2.x и хочу сохранить совместимость при разработке 3.x.
Я использую NSInvocation, это код, подобный этому
NSInvocation* invoc = [NSInvocation invocationWithMethodSignature:
[cell methodSignatureForSelector:
@selector(initWithStyle:reuseIdentifier:)]];
[invoc setTarget:cell];
[invoc setSelector:@selector(initWithStyle:reuseIdentifier:)];
int arg2 = UITableViewCellStyleDefault; //????
[invoc setArgument:&arg2 atIndex:2];
[invoc setArgument:&identificadorNormal atIndex:3];
[invoc invoke];
чтобы иметь код таким образом, как 3.0 и 2.0, каждый из которых использует свой синтаксис.
У меня возникла проблема в строке, помеченной вопросительными знаками.
Проблема в том, что я пытаюсь присвоить arg2 постоянную, которая не была определена в OS 2.0. Поскольку все, что связано с NSInvocation - это делать вещи косвенно, чтобы избежать ошибок компилятора, как я могу косвенно установить эту константу в переменную? Что-то вроде executeSelector "присваивать значение переменной" ...
это возможно? спасибо за любую помощь.