如何检查是否在objective-c(iphone)中设置了BOOL?
我知道可以用int或float这样做: NSNumber * Num = [prefs floatForKey:@“key”]; 例如
答案 0 :(得分:40)
你做不到。 BOOL
是YES
或NO
。没有其他州。解决这个问题的方法是使用NSNumber
([NSNumber numberWithBool:YES];
),然后检查NSNumber
本身是否为nil
。或者有第二个BOOL
来表明你是否改变了第一个的值。
答案 1 :(得分:5)
令人讨厌的是,Objective-C没有布尔类。它当然应该感觉应该和很多人一起旅行。在集合和核心数据中,所有bool都存储为NSNumber实例。
不得不一直来回转换真烦人。
答案 2 :(得分:2)
默认情况下,在Objective-C中将bool值设置为0,因此您无需随时检查bool值是否为nil。
答案 3 :(得分:0)
您可以改用类似的方法...
@import Foundation;
@interface CSBool : NSObject
+ (CSBool *)construct:(BOOL)value;
@property BOOL value;
@end
#import "CSBool.h"
@implementation CSBool
+ (CSBool *)construct:(BOOL)value {
CSBool *this = [self new];
this.value = value;
return this;
}
@end