如何在目标C类中使用布尔属性,我这样做:
@property (nonatomic, copy) BOOL *locationUseBool;
但它给出了错误:
具有'copy'属性的属性必须是对象类型。
声明的正确方法是什么?
答案 0 :(得分:27)
您也可以这样声明。
@property (assign) BOOL locationUseBool;
基本上,如果你说非原子,并且使用@synthesize生成访问器,那么如果多个线程试图一次更改/读取属性,则可能发生错误。您可以获得部分书写的值或过度释放/保留的对象
在多线程程序中,原子操作不能部分通过,而非原子操作可以。
答案 1 :(得分:25)
@property (nonatomic, assign) BOOL locationUseBool;
没有星号,没有副本,没有保留。
答案 2 :(得分:1)
这个对我有用。
@property (nonatomic) BOOL locationUseBool;
属性声明中没有星号*符号。此外,使用'assign'是可选的。