![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
OC
qq_37506789
这个作者很懒,什么都没留下…
展开
-
oc语言的特点以及对象初始化
oc语言特点没有命名空间namespace不支持多重继承(可以使用协议实现多继承)不支持运算符重载、不支持内联函数、没有const和static同一个类里方法不能同名,但类方法和实例方法名字可以一样对象不掉用方法,而是相互传递信息(message passing)[receiver message](recever一定是对象(对象指针)message就是方法的名字和方法所需实参)oc都是原创 2017-03-01 21:01:59 · 328 阅读 · 0 评论 -
协议 protocol
协议: 一系列不属于任何类的方法列表,在其中声明的方法可以被任何类实现(类似于c++的抽象类,即接口)可以完成抽象类的功能,完成不同类的信息交换协议声明和实现协议的名字必须唯一,协议只需声明,并在遵守协议的类中进行实现@protocol 协议名@optional//可以实现也可以不实现的方法@required//默认//必须实现的方法@endl---------------------原创 2017-03-05 12:53:47 · 275 阅读 · 0 评论 -
分类Category
如何修个一个无法得到源码的类的方法? 如何把类的方法分组? 如何把类的实现分散到多个源文件?分类的定义#import"原类名.h"@interface 原类名(分类名)//声明方法(不能有实例变量)@end#import"原类名+分类名.h"@implementation 原类名(分类名)//声明方法(不能有实例变量)@end分类和继承的对比:分类只能有属性和方法,不能增加实例变量原创 2017-03-05 12:02:10 · 189 阅读 · 0 评论 -
动态多态
多态:相同接口,不同实现 相同接口:方法的签名、参数、返回值相同 不同实现:具体实现的内容不同动态多态包括:动态类型识别动态绑定动态加载动态类型识别@interface A:NSObject-(void)draw;@end@interface B:A-(void)draw;@end@interface C:B-(void)draw;@end@interface D:NSO原创 2017-03-04 12:08:21 · 448 阅读 · 0 评论 -
类的继承
继承在OC中没有多继承,只有多重继承;只有public继承(不同于c++)所有类型都有公共基类NSObject通过继承可以:继承父类增加本类实例变量和方法(子类不能和父类同名)覆盖父类的方法方法的覆盖与c++的不同点在于:在使用覆盖时,不需要在头文件声明,只需要直接实现oc都在堆区分配内存,而执行操作目标都是指针指向的对象,而不是指针本身覆盖NSObject基类NSObject原创 2017-03-01 15:55:43 · 211 阅读 · 0 评论 -
存取器方法、属性声明
setter getter 方法-(void)setWidth:(double)aWidth;-(double) width;-(void)setHeight:(double)aHeight;-(double) height;//[rectangle setWidth:10];//NSLog(@“%g”,[rectangle width];rectangle.width = 10;N原创 2017-03-01 21:25:39 · 423 阅读 · 0 评论 -
内存管理
三种内存管理机制:引用计数、ARC(自动引用技术)、垃圾回收(在iphong和ipad中不能用)每个对象有一个或多个所有者,所有权表示对其指向的对象的引用计数>=1当使用alloc new copy mutableCopy 创建对象时,拥有对象所有权 计数+1retain +1 retain count 为引用计数当使用完之后需要放弃所有权 release,语句中一定要包括原创 2017-03-01 21:37:30 · 137 阅读 · 0 评论 -
self super
self相当于this,它的值可改变, 当一个方法调用同类中的另一个方法时,self不可省略super和self指向相同的receiver,但super是要到父类方法列表找对应方法, 只是编译器指示符,不能赋值,而self可以赋值(例如对象的初始化)//复数相加complex.h-(Complex*)add:(Complex*)a{ Complex* c = [[Complex al原创 2017-03-01 21:29:50 · 159 阅读 · 0 评论 -
oc中类的声明、定义
类的声明和定义#import<Foundation/Foundation.h>XYZPerson.h@interface Person:NSObject//数据成员NSString *name;//属性声明@property NSString *firstName;@property (readonly)NSString *lastName;@property NSNumber *ye原创 2017-03-01 21:14:03 · 255 阅读 · 0 评论 -
代理模式
对扩展开放,对修改封闭代理delegation是一种定义对象之间关系的设计模式,如果一个对象的行为由另一个对象定义或者协助完成,那后者就是前者的代理被代理者将操作委托给其代理代理模式解耦了被代理类和代理类代理模式的实现 //Window.h@protocol WindowDrawDelegate<NSObject>-(void)draw;@end//Window.h@interfa原创 2017-03-05 16:48:49 · 188 阅读 · 0 评论