Ответ 1
Передайте NSNumber
. Используйте boolNumber = [NSNumber numberWithBool:TRUE]
. Ваш метод должен быть определен как:
-(void)setVariablePremierAffichage:(NSNumber *)boolNumber
{
BOOL value = [boolNumber boolValue];
// do something
}
Это мой код:
[delegate performSelectorOnMainThread:@selector(setVariablePremierAffichage:) withObject:TRUE waitUntilDone:NO];
Проблема в том, что аргумент "withObject" принимает только тип "id", поэтому, как я могу передать значение "TRUE" в тип id? Я также использую управление памятью ARC в Xcode для iOS 5.
Передайте NSNumber
. Используйте boolNumber = [NSNumber numberWithBool:TRUE]
. Ваш метод должен быть определен как:
-(void)setVariablePremierAffichage:(NSNumber *)boolNumber
{
BOOL value = [boolNumber boolValue];
// do something
}
Используйте CFbooleanreference и произведите его
[delegate performSelectorOnMainThread:@selector(setVariablePremierAffichage:) withObject:(id)kCFBooleanTrue waitUntilDone:NO];
Невозможно применить примитив к id. Если вам нужно вызвать метод динамически, например, с помощью функции performSelector, вам нужно будет использовать NSInvocation:
NSMethodSignature *sig = [self methodSignatureForSelector:@selector(setVariablePremierAffichage:)];
NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:sig];
BOOL yes = YES;
[invocation setArgument:&yes atIndex:2];
[invocation setTarget:self];
[invocation setSelector:@selector(setVariablePremierAffichage:)];
[invocation invoke];
Ура!