Я перебирал пример this, в котором используется селектор. Я скопировал код оттуда для удобства.Что происходит, когда параметризованный селектор вызывается без параметров?
// MYTapGestureRecognizer.h
@interface MYTapGestureRecognizer : UITapGestureRecognizer
@property (nonatomic, strong) NSString *data;
@end
// MYTapGestureRecognizer.m
@implementation MYTapGestureRecognizer
@end
// =====================
....
MYTapGestureRecognizer *singleTap = [[MYTapGestureRecognizer alloc] initWithTarget:self action:@selector(tapDetected:)];
singleTap.data = @"Hello";
.....
// ====================
-(void)tapDetected:(UITapGestureRecognizer *)tapRecognizer {
MYTapGestureRecognizer *tap = (MYTapGestureRecognizer *)tapRecognizer;
NSLog(@"data : %@", tap.data);
}
Мой вопрос
1-Когда self
вызывает селектор какой параметр проходит ли это в приведенном выше случае?
2- Также если вызывается селектор (указывающий на метод, требующий параметров) (см. Пример ниже), и никакие параметры не передаются, есть ли в этом случае значения по умолчанию? Если возможно, есть ли для этого документация?
Пусть подпись MyTest является
- (void) MyTest : (NSString*) a;
Теперь построения и вызова селектор
SEL a = NSSelectorFromString(@"MyTest:");
[t performSelector:a]; //Works Fine and the call is made - However Notice no parameter is passed . In this case what would the value of the parameter be in the method ?
я проверил следующее, но я не мог найти эту информацию
Как вы думаете? Думаю, нуль. Все нули. – Andy