Anc*_*inu 1 types boolean class objective-c
我有一个奇怪的行为,似乎是由于iOS中的一些实习烹饪.
当我做 :
id data1 = @(NO);
if ([data1 isKindOfClass:[NSNumber class]]) {
// doesn't come here.
}
Run Code Online (Sandbox Code Playgroud)
但@(YES)它完美地工作.
首先,我想了解原因.其次,我想知道你会怎么做?(因为id也可以是文本).
答案:
实际上,@(NO)是一类NSNumber,我的问题是由于其他一些错误.
只需使用@NO并@YES为NSNumber代表实例NO和YES.
无论[@(NO) class]和[@(YES) class]给予__NSCFBoolean.
而且[@NO class]还[@YES class]要付出代价__NSCFBoolean.
在所有四种情况下,检查isKindOfClass:[NSNumber class]返回true.