属性声明方式@interface与@property 的不同

刚开始接触OC再看别人写的代码的时候,常常困惑于人家在声明属性时的写法,然后再一一探讨每个方式声明属性的区别。
方式一:直接在@interface中的大括号中声明。

@interface MyTest : NSObject{
    NSString *mystr;
}

方式二:直接用@property声明

@interface MyTest : NSObject{
}

@property (strong, nonatomic) NSString *mystr;
随后在.m文件中加入@synthesize mystr = _myStr;

==========================我是分割线============================

首先来说一下方式一根方式三的区别,使用方式一声明的成员变量是只能在自己类内部使用的,而不能在类的外部使用,(就是通过 类名. 点的方式是显示不出来的),方式三则相反,它可以在类的外部访问,在类的内部可以通过下划线+变量名或者self.变量名的方式来访问。

你可能感兴趣的:(属性声明方式@interface与@property 的不同)