使用bool属性

时间:2015-07-20 14:51:37

标签: objective-c

我想实现类似这样的东西

 [self perform Selector:@selector(setEarlierMessagesIsLoading:) withObject:@YES afterDelay:1];

但它不起作用。为什么?有可能吗?

已解决

 [self perform Selector:@selector(setEarlierMessagesIsLoading:) withObject:YES afterDelay:1];

2 个答案:

答案 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。