在.H接口或在.m文件的扩展声明属性?(Declare properties in .h inter

2019-07-17 19:06发布

在Objective-C是它的最佳做法:

  1. 声明的对象,如在.H按钮,然后在.M合成

     .h @interface SomeViewController : UIViewController @property (strong, nonatomic) UIButton *someButton; @end .m @implementation SomeViewController @synthesize someButton = _someButton; @end 
  2. 或者宣布作为.M高德

     @interface SomeViewController () @property (strong, nonatomic) UIButton *someButton; @end 

我注意到,在不少苹果代码,特别是他们的面包屑示例代码,它们的许多属性都在接口中声明。 有没有两者之间的区别吗? 我还注意到,当属性在被声明@interface ,它们被自动以下划线前缀合成,使得someButton = _someButton合成无用。

Answer 1:

首先, 为的Xcode 4.4的就不再需要@synthesize (除非你改变这两个setter和getter方法),要么当@property的声明@interface@implementation

如果@property只在类内访问则声明@property的类扩展在.m文件。 这提供了封装并可以很容易地看到, @property不是从另一个类使用。

如果@property被其他类,在设计上,然后在把它定义@interface在.h文件。



文章来源: Declare properties in .h interface or in an extension in .m file?