黑马程序员技术交流社区

标题: #import 与 @class, property 与 synthesize的区别 [打印本页]

作者: -(_)-    时间: 2014-8-4 10:10
标题: #import 与 @class, property 与 synthesize的区别
这是我在学习过程中记录的小知识, 与大家分享一下

#import 与 @class 的区别:
     #import方式会包含被引用类的所有信息,包括被引用类的变量和方法;
     @class方式只是告诉编译器在该头文件中,这只是个类的声明.
     通常在 .h文件中用@class方式进行类的声明
     在 .m文件中用#import来导入类的具体实现


当编译器遇到 @property 时,会自动展开成getter和setter的声明
@property只用在@interface里面,用来声明getter 和 setter

@synthesize用于getter和setter的实现,编译器会自动生成getter与setter的实现
@synthesize默认会去访问跟指定的变量同名的变量.
如果找不到同名的变量,会自动生成一个私有的同名变量.

在Xcode4.5的环境下,可以省略@synthesize var, 并且会默认去访问_var这个成员变量.
如果 找不到_var,这个成员变量,会自动生成一个叫_var的私有成员变量.


作者: 小小菜鸟007    时间: 2014-8-6 11:25
分析的很到位!
作者: 偶太白    时间: 2014-8-8 13:21
赞一个:D
作者: zhuiyi007    时间: 2014-8-12 15:05
留名,赞一个~~
作者: 卡哇伊    时间: 2014-8-12 16:10
写的很好 顶一个




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2