【发布时间】:2010-11-04 00:08:11
【问题描述】:
我在编译多个现有 Cocoa 类的子类时收到 Xcode 警告。比如下面这个类
@interface HMAttitude : CMAttitude
{
double pitch;
double roll;
double yaw;
}
@property (readwrite) double pitch;
@property (readwrite) double roll;
@property (readwrite) double yaw;
@end
-
@implementation HMAttitude
@synthesize pitch, roll, yaw;
- (id) init
{
return [super init];
}
@end
产生三个警告
警告:属性“偏航”及其超类“CMAttitude”没有匹配的“原子”属性
警告:属性“pitch”及其超类“CMAttitude”没有匹配的“原子”属性
警告:属性“roll”及其超类“CMAttitude”没有匹配的“atomic”属性
为了创建 CMMotionManager 和 CLLocationManager 子类,它们的作用类似于超类,所有相关子类都是必需的,仅从 csv 文件加载它们的数据。我对它们进行子类化的唯一原因是获得访问(或覆盖)它们的只读属性。如果无法设置这些属性,我将无法返回与真正的 CMMotionManager 和 CLLocationManager 类相同的对象。
除了不得不使用#pragma 忽略稍微困扰我的警告之外,目前一切正常。
有谁知道为什么会产生这个警告?鉴于属性未设置为非原子(原子是默认值),我完全不知道。
为了使这些属性成为原子属性,我需要明确执行什么操作吗?
【问题讨论】:
标签: objective-c xcode gcc-warning