Я пытаюсь добавить кнопку программно таким образом, чтобы при нажатии на нее пропускался определенный объект. Я продолжаю получать исключение «непризнанного отправителя». Можете ли вы предложить, что не так с кодом:UIButton с NSInvocation
// allocate the details button's action
SEL selector = @selector(showPropertyDetails:forProperty:);
NSMethodSignature *signature = [[self class] instanceMethodSignatureForSelector:selector];
NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:signature];
[invocation setSelector:selector];
//The invocation object must retain its arguments
[property retain];
//Set the arguments
[invocation setTarget:self];
[invocation setArgument:&property atIndex:3];
[(UIButton*)[myView viewWithTag:15] addTarget:self action:@selector(selector) forControlEvents:UIControlEventTouchDown];
и далее вниз, метод в одном классе выглядит как:
-(void) showPropertyDetails:(id)something forProperty:(Property *)property {
int i=0;
}
Так вы имеете в виду, что единственный способ отправить несколько аргументов на нажатие кнопки должен использовать объект коллекции (словарь, массив и т. д.), так как они всегда будут принимать только один аргумент? – Amarsh
@Amarsh: Я имею в виду, что вы не можете использовать incovations и др. Здесь, а вместо этого должны хранить информацию и отношение к кнопке в другом месте. –
@George: Да, спасибо. Ваш комментарий помог мне решить мою проблему. Thans для этого. – Amarsh