iPhone: выполнить выборку с параметром BOOL? - PullRequest
41 голосов
/ 16 августа 2011

Есть ли способ отправить BOOL в селектор?

[self performSelector:@selector(doSomething:) withObject:YES afterDelay:1.5];

Или я должен использовать NSInvocation? Может ли кто-нибудь написать образец, пожалуйста?

Ответы [ 14 ]

1 голос
/ 02 сентября 2015

Вместо того, чтобы полагаться на NSInvocation или модифицировать метод для использования NSNumber, это можно сделать гораздо более элегантно, создав представление, например:

@interface CLLocationManager(CompatibleView)
@property (nonatomic) BOOL allowsBackgroundLocationUpdates;
@end

@implementation SampleClass
- (void)sampleFunc:(CLLocationManager *)locationManager {
    if ([locationManager respondsToSelector:@selector(setAllowsBackgroundLocationUpdates:)]) {
        locationManager.allowsBackgroundLocationUpdates = YES;
    }
}
@end
1 голос
/ 11 декабря 2013

Если вы Передаете параметры BOOL в статическом , тогда вы можете использовать следующее ..

------> Для передачи «НЕТ»:


[self performSelector:@selector(doSomething:) withObject:0 afterDelay:1.5];

Теперь получите результат после TimeInterval:

-(void)doSomething:(BOOL)isDoSomething
{
    NSLog(isDoSomething?@"Do Something":@"Don't Do Any Thing");
}

Здесь вы получите ' Ничего не делать 'в журнале.


------> Для прохождения' YES ':


[self performSelector:@selector(doSomething:) withObject:@"1" afterDelay:1.5];

Теперь получите результат после TimeInterval:

-(void)doSomething:(BOOL)isDoSomething
{
    NSLog(isDoSomething?@"Do Something":@"Don't Do Any Thing");
}

Здесь вы получите ' Do Something ' в журнале.


0 голосов
/ 28 мая 2013

Я делаю это так:

[_button performSelector:@selector(setUserInteractionEnabled:) withObject:[NSString stringWithFormat:@"YES"] afterDelay:nil];
0 голосов
/ 16 августа 2011

Попробуйте обернуть свой bool в NSNumber: [NSNumber numberWithBool:myBool]

И вы можете получить его обратно с [myNumber boolValue]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...