(iphone)如何为变量设置'atomic'@property?

时间:2011-01-19 09:36:19

标签: iphone properties atomic

我想使用多个线程的整数变量 因此我想进行getter / setter原子操作。

在头文件

@property (retain) NSNumber* myNumber;

在实施文件

@synthesize myNumber; 

不会编译,我缺少什么? (属性'myNumber'的类型与ivar'myNumber'的类型不匹配)
- 编辑,我把它声明为int myNumber;编译问题解决了

另外,我可以使用plain int吗? (不是NSNumber *)

4 个答案:

答案 0 :(得分:3)

通常,您可以使用int代替NSNumber。类型选择取决于您尝试解决的问题。

您收到的特定错误消息表明您的实例变量的类型与具有相同名称的属性不同。你把你的ivar称为int myNumber吗?在这种情况下,你应该写

@property int myNumber;

<强>更新

由于属性默认为 atomic ,因此您无需显式写入:

@property (atomic) int myNumber;

答案 1 :(得分:2)

  1.   

    @property(assign)int myNumber;

  2. 添加@interface NSNumber *myNumber;

答案 2 :(得分:1)

检查您的实例变量类型。

您的标头文件中包含以下内容:

@interface Foo : NSObject {
    NSNumber *myNumber;
}
@property (retain) NSNumber *myNumber;

答案 3 :(得分:-2)

使用此,

@property (atomic , retain) NSNumber* myNumber;

或者使用此link text可能会有所帮助