- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
IOS考试
IOS考试
一,import include @class 区别
Objective-C:#import
C,C++:#include
#import由gcc编译器支持
在 Objective-C 中,#import 被当成 #include 指令的改良版本来使用。除此之外,#import 确定一个文件只能被导入一次,这使你在递归包含中不会出现问题。
使用哪一个还是由你来决定。一般来说,在导入 Objective-C 头文件的时候使用 #import,包含 C 头文件时使用 #include。比如:
#import foundation /Foundation.h
#include asl .h
#include mach /mach.h
#import比起#include的好处就是不会引起交叉编译
二、@class是用来做类引用的
@class就是告诉编译器有这么一个类,至于类的定义是啥不知道
@class一般用于头文件中需要声明该类的某个实例变量的时候用到,在m文件中还是需要使用#import
举个例子说明:
在ClassA.h中
#import ClassB.h 相当于#include整个.h头文件。如果有很多.m文件#import ClassA.h,那么编译的时候这些文件也会#import ClassB.h增加了没必要的#import,浪费编译时间。在大型软件中,减少.h文件中的include是非常重要的。
如果
只是@class ClassB 那就没有include ClassB.h。仅需要在需要用到ClassB的ClassA.m文件中 #import ClassB.h
那么什么时候可以用@class呢?
如果ClassA.h中仅需要声明一个ClassB的指针,那么就可以在ClassA.h中声明
@ClassB
...
ClassB *pointer;
二、self作用
IOS 关键字self,super,copy, retain, assign , readonly , readwrite, nonatomic、@synthesize、@property、@dynamic
1. #synthesize关键字:根据@property设置,自动生成成员变量相应的存取方法,从而可以使用点操作符来方便的存取该成员变量。
2. @implementation关键字,表明类的实现@end结束
3. self关键字:类似于java中的this,是隐藏参数,指向当前调用方法的类。
super关键字:调用父类的方法。
self=[superinit]这里不是判断self与[superinit]是否相等,而是判断是否可以成功初始化。[superinit]:父类初始化成功的话,通过=给self,这样self成为一个非空对象,整个来说即非false(非NO)。
#import告诉预处理器,将头文件的内容包含到本文件中.OC中的import能保证头文件只会被包含一次.@interface关键字:声明一个Student类。@end结束声明.
冒号:表示继承后面跟的是父类.
NSObject是大多数对象都会用到的内存管理,和初始化框架,以及反射和类型操作.相当于Object。
NS是NextSTEP缩写,表示这个函数来自Cocoa工具包。
1. 声明全局变量,与C中一样。
2. property关键字:设置成员变量的属性(有读/写,赋值assign,retain,copy,以及对多线程的支持nonatomic)。
3. 声明一个方法,格式是–(返回值)方法关键字1:(参数类型)参数名方法关键字2:(参数类型)参数名……(在读方法的时候就可以先找方法关键字来确定参数)。
-减号是实例方法,+是类方法
4.另一个初始化方法中调用已有的初始化方法这种概念被称为DesignatedInitializer.
5.NSLog是OC中的标准输出,附加输出当时日期,时间,应用程序名称.使用NSLog()输出任意对象的值时,都会使用%@格式说明。在使用这个说明符时,对象通过一个名为description的方法提供自己的NSLog()格式。
使 用@property配合@synthesize可以让编译器自动实现getter/setter方法,使用的时候也很方便,可以直接使用“对象.属性” 的方法调用;如果我们想要”对象.方法“的方式来调用一个方法并获取到方法的返回值,那就需要使用@property配合@dynamic了
使用@dynamic关键字是告诉编译器由我们自己来实现访问方法。如果使用的是@synthesize,那么这个工作编译器就会帮你实现了。
readonly此标记说明属性是只读的,默认的标记是读写,如果你指定了只读,在@impleme
您可能关注的文档
- i60工程模式的各种功能.doc
- HYSYS软件及其自动化接口研究.doc
- IDEA快捷键.doc
- IE与Firefox下对CSS解析的区别 - 定义div高度firefox解析问题.doc
- idea快捷方式大全 - 副本.doc
- IBM电脑各型号的意义.doc
- huawei3952.doc
- HSPICE新规则.doc
- ICD2使用中常见问题汇总_毛狼的博客.doc
- IE工程师必修之IE培训.doc
- 白天晚上教学课件.ppt
- 2025年山东菏泽市牡丹区中医医院引进急需紧缺专业技术人才30人笔试模拟试题参考答案详解.docx
- 2025年山东菏泽市牡丹区中医医院引进急需紧缺专业技术人才30人笔试模拟试题带答案详解.docx
- 2025年山东菏泽市牡丹区中医医院引进急需紧缺专业技术人才30人笔试模拟试题及参考答案详解.docx
- 2025年山东菏泽市牡丹区中医医院引进急需紧缺专业技术人才30人笔试模拟试题及参考答案详解一套.docx
- 2025年山东菏泽市牡丹区中医医院引进急需紧缺专业技术人才30人笔试模拟试题及完整答案详解1套.docx
- 2025年山东菏泽市牡丹区中医医院引进急需紧缺专业技术人才30人笔试模拟试题及参考答案详解1套.docx
- 2025年山东菏泽市事业单位招聘急需紧缺岗位目录(第一批)笔试模拟试题参考答案详解.docx
- 2025年山东菏泽市牡丹区中医医院引进急需紧缺专业技术人才30人笔试模拟试题及答案详解1套.docx
- 画西瓜教学课件.ppt
最近下载
- JB-T7752-2005_滚动轴承密封深沟球轴承技术条件.pdf VIP
- 装配式混凝土结构部品部件吊装监理实施细则(标准化格式文本).doc VIP
- 萧山区地图杭州市萧山区乡镇街道地图高清矢量可填充编辑地图PPT模板.pptx
- 全国初中物理竞赛试题专项(力)精编(2024版)(附答案).pdf VIP
- 人教版七年级数学上册试题 第6章 几何图形初步 章节检测卷 (含详解).docx VIP
- 装配式混凝土结构施工监理实施细则(标准化格式).doc VIP
- 绿色智能船舶制造基地项目可行性研究报告.pptx VIP
- 船舶制造基地可行性研究报告.doc VIP
- 第八节 伏安法测电动势内阻-2024-2025学年高二上学期物理专项训练.pdf VIP
- 节能分部工程监理研究细则.doc VIP
文档评论(0)