iphone - 如何将 NSNumber 转换和比较为 BOOL?

标签 iphone objective-c

首先我将 BOOL 值转换为 NSNumber,以便将其放入 NSUserDefaults。稍后我想从 NSUserDefaults 中检索 BOOL 值,但显然我得到的是 NSNumber 而不是 BOOL。我的问题是?

  1. 如何将 NSNumber 转换回 BOOL?
  2. 如何将 NSNumber 与 BOOL 值进行比较。

目前我有:

if (someNSNumberValue == [NSNumber numberWithBool:NO]) {
    do something
}

有更好的比较方法吗?

谢谢!

最佳答案

您当前比较两个指针。使用 NSNumber 的方法来实际比较两者:

if([someNSNumberValue isEqualToNumber:[NSNumber numberWithBool:NO]]) {
    // ...
}

要从 NSNumber 获取 bool 值,请使用 -(BOOL)boolValue:

BOOL b = [num boolValue];

这样比较对我来说更容易阅读:

if([num boolValue] == NO) {
    // ...
}

关于iphone - 如何将 NSNumber 转换和比较为 BOOL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2478984/

相关文章:

ios - 过滤 UItableview Swift IOS

iphone - 如何获取 iPhone OS 中的所有图标?

iPhone 正则表达式捕获组

objective-c - NSArray 删除类型的最后一个对象?

iphone - FastPDFKit 获取文档大小

iphone - 如何在 SQLite 数据库中保存坐标值

ios - 如何禁用 iOS 远程通知的默认通知警报 View ?

ios - AddressBook 联系人搜索在大列表上很慢,如何改进?

iOS 模拟器不显示文件应用程序作为 NSFileproviderExtension 的选项

ios - 如何获取相对于 GMT 以外时区的 NSCalendarComponent 值?