我想实现类似这样的东西
[self perform Selector:@selector(setEarlierMessagesIsLoading:) withObject:@YES afterDelay:1];
但它不起作用。为什么?有可能吗?
已解决
[self perform Selector:@selector(setEarlierMessagesIsLoading:) withObject:YES afterDelay:1];
答案 0 :(得分:3)
首先,@YES
不是BOOL值,它是NSNumber的一个实例。
因此,如果您想获得bool值,则必须将其转换为BOOL值。
你选择器中的
- (void)setEarlierMessagesIsLoading:(NSNumber *)isLoading {
if([isLoading boolValue]) {
NSLog(@"Is it loading? YES");
}else {
NSLog(@"Is it loading? NO");
}
}
答案 1 :(得分:0)
我猜你的方法看起来像这样:
- (void)setEarlierMessagesIsLoading:(BOOL)isLoading;
更改为:
- (void)setEarlierMessagesIsLoading:(NSNumber *)isLoading;
因为你发送的是NSNumber *而不是BOOL。