在Objective-C类接口中声明一个静态属性

时间:2017-11-17 15:57:45

标签: objective-c static declared-property

我定义了一个Objective-C类:

@interface MyRequest : NSObject

@property (strong, nonatomic, readonly) NSDecimalNumber *myNumber;

@property (strong, nonatomic, readonly) CommConfig *commConfig;

@property (nonatomic, assign, readonly) BOOL debug;

如何使commConfig成为静态变量?当我使用'班级'关键字,编译器给我以下警告:

  

Class property' commConfig'需要方法' commConfig'要定义 - 使用@dynamic或在此类实现中提供方法实现

构造函数不再识别这一行:

_commConfig = commConfig

1 个答案:

答案 0 :(得分:1)

如果程序员实例没有实现,则编译器会自动实现属性 - 分配的实例变量和写入的getter和/或setter方法。类属性永远不会自动实现,因此您需要声明静态支持变量并定义getter。在@implementation添加:

static CommConfig *_commConfig;

+ (CommConfig *) commConfig { return _commConfig; }

您可以根据需要调用支持,例如遵循全局/静态变量的命名约定。

HTH

相关问题