- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
OCobjective
OC objective-C
是C的超集,是对C的一个扩展,扩展了面像对象的思想?NeXT? NeXTStep ? oc? Cocoa
cmd+R
oc的基本使用
??同过main函数为主函数
? #import?拷贝头文件中的数据?防止重复导入
? NSLog();?日志输出? NS是前缀
? @hello world oc的字符串?
? BOOL
? YES
? NO
c?面相过程
?? ??面相模块
oc面相对象? oo
??什么是对象
?? ??实实在在的个体
??类
?? ??是对对象的一个抽象描述
?? ??是创建对象的模板
??属性:描述创建出来的对象应该长什么样子的
??行为:描述创建出来的对象可以做什么事情
面相对象三大的特征
封装
?? 1、将属性进行封装,对外不公开,对外私有化
?? @public?可以在任何地方直接使用
?? @private?只可以在本类中使用
?? @protected?只可以在本类中和子类中使用
?? @package?只能在框架(framework)内使用
?? 2、对外提供getter、setter
继承
?? is a
???单继承
多态
???通过父类指针指向子类对象
多态的限制
???无法获得子类定义的属性??
抽象
补充:
源文件组织
一个类属于一个文件
? @interface? ? ? ? .h
? @implementation ? .m
方法的名字
?? setCpu:
- (void)setCpu:(CPU *)cpu andVcard:(VideoCard *)vcard;
?? setCpu:cpu andVcard:vcard
?? setCpu: andVcard:
类之间的关系
???继承关系
???关联关系
? ? ??将类作为属性
? ? ??强关联(聚合)
? ? ??弱关联(组合)
???依赖关系1、isa self super
isa
??是一个指针,指向一个struct objc_class
?? objc_class
? ? ? super_class
? ? ? name
? ? ? version
? ? ? instance_size
? Class?类
??对象只有自己独有的属性
??行为是共有的,在类里面有一个方法列表
? isa指向了对象所属类
self
???是一个指针,指向了调用方法的对象
? ?
super
???可以理解是一个指针,指向父类
???可以间接调用父类的行为
2、类方法
??类可以拥有自己的方法
??-?实例方法
?? ??必须要有实例(对象)来调用
??+?类方法
?? ??只有类可以调用
?? ??类方法中不能使用实例方法
?? ??类方法中不能操作属性
??类其实也是一个对象
? ? obj_class?来描述类的样子
3、oc中的点语法
???可以通过.操作属性
???不能通过.调用普通方法
?? .的本质
?? ??不是直接操作属性
?? ??调用setter?和?getter
?? ? setter = setAge
?? ? getter = age
?? ? d.age=12 = [d setAge:12];
?? ? int a = d.age = [d age];
4、@property
?? @property int age;
???自动生成
? ? setAge:
? ? age
?? @synthesize age
???如果属性中有age,那么创建setAge,age
???如果没有age,会先创建age属性@private,在创建setAge,age
?? @synthesize age = _age
???如果属性中有_age,那么创建setAge,age
???如果没有_age,会先创建_age属性@private,在创建setAge,age
?? Xcode 4之后
?? @property
???可以完成@property和@synthesize所有的功能
5、id
?? typedef struct objc_object *id
?? id是一种通用类型
?? NSObject *?可能会有警告
?? instancetype?一种通用类型
6、构造
?? new
?? ??内存分配?+ alloc
?? ??属性初始化?- init
???重写init
?? ??给属性设置值就可以了
?? ? return self
?? ? if(self=[super init]){
? ? ? ? ?
?? ? }
?? ? return self;
???自定义自己的初始化方法
? ?
文档评论(0)