【问题标题】:Is there an object of type boolean in ios?ios中是否有布尔类型的对象?
【发布时间】:2015-05-11 09:38:36
【问题描述】:

我想使用非原子且弱的属性,但我不能使用 BOOL,因为它不是对象。 ios/objective-c 的等价物是什么?

谢谢。

【问题讨论】:

    标签: ios objective-c properties boolean


    【解决方案1】:

    对于诸如BOOL 之类的非对象类型,您应该将属性设置为assign 而不是weak

    例子:

    @property (nonatomic, assign) BOOL isValid;
    

    【讨论】:

    • 或者可以使用一个包含布尔值的 NSNumber 对象。但是需要注意正确设置/查询它 - 如果不显式提取值,它就不能在逻辑表达式中使用。
    【解决方案2】:

    Dave Wood 是正确的(您可能希望将assignBOOL 一起使用)。

    可以使用NSNumber:

    @property (nonatomic, weak) NSNumber *isValidNumber;
    
    // …
    
    BOOL number = @(YES);
    self.isValidNumber = number;
    
    // …
    
    if (self.isValidNumber.boolValue) {
        // something is valid
    }
    

    但是,当方法返回时,isValidNumber 将变为 nil(因为没有更多的 strong 指向它的指针)。所以不清楚为什么你想这样做。

    【讨论】:

      猜你喜欢
      • 2018-06-07
      • 2017-12-08
      • 2011-05-30
      • 1970-01-01
      • 2011-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-25
      • 2010-09-13
      相关资源
      最近更新 更多