如何在目标C类中设置布尔类型属性

时间:2012-02-22 10:32:46

标签: objective-c ios ios5 properties boolean

如何在目标C类中使用布尔属性,我这样做:

@property (nonatomic, copy) BOOL *locationUseBool;

但它给出了错误:

  

具有'copy'属性的属性必须是对象类型。

声明的正确方法是什么?

3 个答案:

答案 0 :(得分:27)

您也可以这样声明。

@property (assign) BOOL locationUseBool;

基本上,如果你说非原子,并且使用@synthesize生成访问器,那么如果多个线程试图一次更改/读取属性,则可能发生错误。您可以获得部分书写的值或过度释放/保留的对象

在多线程程序中,原子操作不能部分通过,而非原子操作可以。

答案 1 :(得分:25)

@property (nonatomic, assign) BOOL locationUseBool;

没有星号,没有副本,没有保留。

答案 2 :(得分:1)

这个对我有用。

@property (nonatomic) BOOL locationUseBool;

属性声明中没有星号*符号。此外,使用'assign'是可选的。