ios interface iVar vs Property

后端 未结 2 1215
轮回少年
轮回少年 2021-02-08 08:39

In an .h file, what is the difference between:

@interface ViewController : UIViewController
@property (strong, nonatomic) UIView* myView;

And <

相关标签:
2条回答
  • 2021-02-08 08:41

    The main difference is that a @property is visible to other objects, and can be accessed by these using an instance of your class.

    You can use @synthesize in your implementation file to automate definition de getter setter functions in your implementation.

    Updated (following @Graham Lee's suggestion)

    According to the visibility specifier for your instance variable (@protected / @private / @public) , the ivar can be used in your implementation file, subclasses or other classes. The implicit value is @protected, so in your example it will be visible to your implementation file and subclasses.

    0 讨论(0)
  • 2021-02-08 09:03

    The first one is the declaration of a property, whereas the second is only a ivar. A property is the automatic declaration of a getter and a setter for an ivar, but if there is not ivar (like in your first example) the property will create the ivar too.

    0 讨论(0)
提交回复
热议问题