下面是我正在玩的代码,我需要发送BOOL
作为方法setEnabled:
的输入对象。当我添加NO
时,它不会抛出任何错误并且按预期工作但当我尝试使用YES
时,它会向我抛出错误与指针转换不兼容的整数 。为什么这种偏袒:P
BTW它甚至不适用于[NSNumber numberWithBool:NO]
。我怎样才能为YES
& NO
。
[self.navigationItem.rightBarButtonItems makeObjectsPerformSelector:@selector(setEnabled:) withObject:NO];
[self.navigationItem.rightBarButtonItems makeObjectsPerformSelector:@selector(setEnabled:) withObject:YES];
答案 0 :(得分:-1)
首先,您的方法setEnabled:
应该有NSNumber
作为参数:
- (void) setEnabled:(NSNumber*)param {
}
然后你可以这样做:
[self.navigationItem.rightBarButtonItems makeObjectsPerformSelector:@selector(setEnabled:) withObject:@NO];
[self.navigationItem.rightBarButtonItems makeObjectsPerformSelector:@selector(setEnabled:) withObject:@YES];
关于错误:与指针转换不兼容的整数。 YES
等于1,系统无法将该值转换为指针值。但是,正如@holex所说,NO
等于nil = 0x00000000 = 0 = NO。