Вы передаете «сырое» логическое значение, где id
(указатель на объект) должен быть.
[self performSelectorOnMainThread: @selector(refreshView:)
withObject:someBoolValue
waitUntilDone:NO]
должно быть лучше
[self performSelectorOnMainThread:@selector(refreshView:)
withObject: [NSNumber numberWithBool: someBoolValue]
waitUntilDone: NO]
Вы можете извлечь логическое значение в вашем методе refreshView:
, отправив метод boolValue
в числовой объект:
if( [myWrappedBoolean boolValue] ) {
...
}
В отличие от Java или C #, Objective-C не имеет «автобокса» от примитивных значений до объектов. Тип BOOL
- это просто маленький целочисленный тип, который вызывает сообщение об ошибке, которое вы видите, поскольку компилятору нужен указатель для второго аргумента performSelectorOnMainThread:withObject:waitUntilDone:
.