在 Objective-C class 接口中声明静态 属性
Declare a static property in an Objective-C class interface
我正在定义一个 Objective-C class:
@interface MyRequest : NSObject
@property (strong, nonatomic, readonly) NSDecimalNumber *myNumber;
@property (strong, nonatomic, readonly) CommConfig *commConfig;
@property (nonatomic, assign, readonly) BOOL debug;
如何使 commConfig
成为静态变量?当我使用 'class' 关键字时,编译器会给我以下警告:
Class property 'commConfig' requires method 'commConfig' to be defined - use @dynamic or provide a method implementation in this class implementation
并且构造函数不再识别这一行:
_commConfig = commConfig
如果程序员没有实现实例属性,编译器会自动实现 - 分配实例变量并编写 getter and/or setter 方法。 Class 属性 从未 自动实现,因此您需要声明静态支持变量并定义 getter。在您的 @implementation
添加:
static CommConfig *_commConfig;
+ (CommConfig *) commConfig { return _commConfig; }
您可以随意调用支持,例如遵循 global/static 变量的命名约定。
HTH
我正在定义一个 Objective-C class:
@interface MyRequest : NSObject
@property (strong, nonatomic, readonly) NSDecimalNumber *myNumber;
@property (strong, nonatomic, readonly) CommConfig *commConfig;
@property (nonatomic, assign, readonly) BOOL debug;
如何使 commConfig
成为静态变量?当我使用 'class' 关键字时,编译器会给我以下警告:
Class property 'commConfig' requires method 'commConfig' to be defined - use @dynamic or provide a method implementation in this class implementation
并且构造函数不再识别这一行:
_commConfig = commConfig
如果程序员没有实现实例属性,编译器会自动实现 - 分配实例变量并编写 getter and/or setter 方法。 Class 属性 从未 自动实现,因此您需要声明静态支持变量并定义 getter。在您的 @implementation
添加:
static CommConfig *_commConfig;
+ (CommConfig *) commConfig { return _commConfig; }
您可以随意调用支持,例如遵循 global/static 变量的命名约定。
HTH