【发布时间】:2015-05-11 09:38:36
【问题描述】:
我想使用非原子且弱的属性,但我不能使用 BOOL,因为它不是对象。 ios/objective-c 的等价物是什么?
谢谢。
【问题讨论】:
标签: ios objective-c properties boolean
我想使用非原子且弱的属性,但我不能使用 BOOL,因为它不是对象。 ios/objective-c 的等价物是什么?
谢谢。
【问题讨论】:
标签: ios objective-c properties boolean
对于诸如BOOL 之类的非对象类型,您应该将属性设置为assign 而不是weak。
例子:
@property (nonatomic, assign) BOOL isValid;
【讨论】:
Dave Wood 是正确的(您可能希望将assign 与BOOL 一起使用)。
你可以使用NSNumber:
@property (nonatomic, weak) NSNumber *isValidNumber;
// …
BOOL number = @(YES);
self.isValidNumber = number;
// …
if (self.isValidNumber.boolValue) {
// something is valid
}
但是,当方法返回时,isValidNumber 将变为 nil(因为没有更多的 strong 指向它的指针)。所以不清楚为什么你想这样做。
【讨论】: