【问题标题】:How to parse NSString into BOOL in Objective-C?如何在 Objective-C 中将 NSString 解析为 BOOL?
【发布时间】:2012-02-12 11:12:11
【问题描述】:

我正在使用 iOS 的 Objective-C 编程。我想将 NSString 类型的对象解析为 BOOL 类型的标量。

我有一个值,我知道它要么是@"YES" 要么是@"NO",但是 YES(或)NO 值是 NSString,我只想将 NSString 更改为 BOOL。

我该怎么做?

如果你知道请回答我。

感谢阅读。

【问题讨论】:

    标签: objective-c cocoa nsstring boolean


    【解决方案1】:

    我认为是这样的:

    BOOL boolValue = [myString boolValue];
    

    【讨论】:

    • “Abdul”的布尔值是多少?请给我建议。
    • @Abdul Yasin,它将是 0/false。此方法仅在您知道字符串中有布尔值时才有效;例如@"1"、@"true"、@"YES" 等,除此之外,boolValue 总是返回 0;
    • @x4h1d 谢谢。非常感谢您的反馈
    • 为什么string 0给我nil,@x4h1d?
    • :) 没关系。 po 表示 print objectboolValue 显然不是一个对象。
    【解决方案2】:

    您可能应该使用NSString-boolValue。直接引用文档:

    [返回]接收者文本的布尔值。返回 YES 遇到“Y”、“y”、“T”、“t”或数字 1-9 之一——方法 忽略任何尾随字符。如果接收者没有,则返回 NO 以数字的有效十进制文本表示开始。

    这似乎与您的输入案例相匹配。

    【讨论】:

      【解决方案3】:
      if ([string isEqualToString: @"YES"])
        foo();
      else
        bar();
      

      【讨论】:

      • 哈哈,你比我快 6 秒!哈哈
      • 这不是正确的方法。请参阅 bschultz 和 Tommy 的其他两个答案。
      • @H2CO3,嗯。 OP 说I exactly know the return value 所以我不会说这是错误的。虽然我同意boolValue 似乎更健壮 - 并且可能更快,因为只需要检查第一个字符......但仍然。
      • 感谢您回答我的问题。 :)
      【解决方案4】:

      这可能最好用一个条件来解决,例如:

      if ([myString isEqualToString:@"YES"])
          myBool = YES;
      else if ([myString isEqualToString:@"NO"])
          myBool = NO;
      

      希望这对您有所帮助,祝您编程顺利。

      【讨论】:

      • 这个解决方案远非正确。有很多方法可以将布尔值存储在字符串中,而这只处理一个非常具体的方法。为什么要复制已经实现的方法的功能。
      • 这种方式太脏了。
      【解决方案5】:

      如果字符串为“真”,该属性也应该返回真,这就是我认为需要扩展的原因...

      extension NSString{
       var boolValueExtended: Bool {
          get{
              return boolValue ||
                  self.stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceCharacterSet()).uppercaseString == "TRUE"
          }
      }
      

      }

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-10-29
        • 2018-04-27
        • 2018-04-06
        • 2011-09-19
        • 2023-03-08
        • 2010-12-19
        • 2014-10-25
        • 1970-01-01
        相关资源
        最近更新 更多