Nic*_*ard 16 xcode private objective-c ios
我正在拧一个有一堆我想在内部使用的属性的类.这意味着我不希望用户在创建我的类时访问它们.这是我在.h中的内容,但它仍然没有隐藏XCode中自动完成菜单(点击转义以查看列表)中的内容:
@interface Lines : UIView {
UIColor *lineColor;
CGFloat lineWidth;
@private
NSMutableArray *data;
NSMutableArray *computedData;
CGRect originalFrame;
UIBezierPath *linePath;
float point;
float xCount;
}
@property (nonatomic, retain) UIColor *lineColor;
@property (nonatomic) CGFloat lineWidth;
@property (nonatomic) CGRect originalFrame;
@property (nonatomic, retain) UIBezierPath *linePath;
@property (nonatomic) float point;
@property (nonatomic) float xCount;
@property (nonatomic, retain) NSMutableArray *data;
@property (nonatomic, retain) NSMutableArray *computedData;
Run Code Online (Sandbox Code Playgroud)
我认为使用@private是我需要的,但也许我做错了.我的.m还需要做些什么吗?
Lil*_*ard 38
@private只影响伊娃.它不会影响属性.如果您想避免公开属性,请将它们放在类扩展中.在你的.m文件中,在顶部,放置类似的东西
@interface Lines ()
@property (nonatomic) CGRect originalFrame;
// etc.
@end
Run Code Online (Sandbox Code Playgroud)
这看起来像一个类别,但"名称"类别为空.它被称为类扩展,编译器将其视为原始@interface块的一部分.但由于它位于.m文件中,因此只有.m文件中的代码才能看到它,并且它外部的代码只能看到标题中声明的公共属性.
| 归档时间: |
|
| 查看次数: |
8969 次 |
| 最近记录: |