Вопрос выбора какао - PullRequest
       16

Вопрос выбора какао

3 голосов
/ 19 июня 2010

У меня вопрос о том, как использовать селектор с несколькими параметрами. Мне нужно переключить это:

-(void)openBackupNamed:(NSString *)name

используя это:

[backupList addItemWithTitle:file action:@selector(openBackupNamed:) keyEquivalent:@""];

Я знаю, что для этих случаев есть параметр withObject:, но я не могу сделать это в методе addItemWithTitle:action:keyEquivalent: или я что-то упустил?

Спасибо

1 Ответ

4 голосов
/ 19 июня 2010

В вашем случае вам придется создать новый объект NSInvocation и установить для его параметра index 2 значение NSString (параметры с 0 и 1 зарезервированы).

Пример:

// Assuming:
NSString *myString = ...;

/* / */

NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:[self methodSignatureForSelector:@selector(openBackupNamed:)]];
[invocation setSelector:@selector(openBackupNamed:)];
[invocation setTarget:self];
[invocation setArgument:&myString atIndex: 2];

[invocation invoke]; // or use invokeWithTarget: instead of the above setTarget method.

Прочитайте АЦП Ссылка на класс NSInvocation

Пожалуйста, обратите внимание на сообщение setArgument.Вы должны передать ему адрес вашего параметра (вашей строки), а не сам объект.

...