OC_语法
末日山脉的日记
学一门新东西,心里不能装事情,要把自己清理干净。
展开
-
OC_点语法
OC中1.点语法的本质是方法调用,而不是访问变量。p.age =10; -- 等价于 -- [p setAge:10];2.成员变量一般用下划线: _height 成员变量一般需要单独写set和get方法原创 2015-12-07 17:09:48 · 371 阅读 · 0 评论 -
OC_ 分类和协议
1.分类category 分类的声明: @interface 类名(分类名) 方法定义 @end分类的实现: @implementation 类名(分类名) 方法实现 @end@interface Person(work):表示为person声明一个work的分类 注意:在分类中只可以添加方法,而不可以添加自身的任何新变量。2.协议protocol:是多个类共享的一个方法列表协议定义原创 2015-05-04 14:43:40 · 379 阅读 · 0 评论 -
BOOL 类型
1.类型 typedef signed char BOOL2.编译原创 2015-08-03 23:44:51 · 484 阅读 · 0 评论 -
OC_Block
block相关:typedef int (*SumP) (int,int);typedef int (^MyBlock) (int,int);int sum(int a,int b){ return a+b;}- (int)main(){ /******************** 无参无返回值的block ************************原创 2015-12-24 18:04:48 · 327 阅读 · 0 评论 -
OC_类、description方法、SEL
1.类: 类的本质:类也是class类型的对象 typedef struct objc_class * Class; 每个类只有一个类对象; 1.当程序启动时,就会加载项目中所有的类和分类,而且加载后会调用每个类的+load方法; 2.当第一次使用某个类的时候,原创 2015-12-24 15:35:33 · 394 阅读 · 0 评论 -
OC_构造方法(工厂方法)
构造方法相关 构造方法:用来初始化对象的方法,是个对象方法,减号开头,是为了让对象创建出来就有一些固定的值; 完整的创建一个可用的对象 1> 分配存储空间 + alloc 2> 初始化 - init 重写 init方法:原创 2015-12-15 13:31:54 · 465 阅读 · 0 评论 -
OC_id关键字
id: 1> 万能指针,能指向任何OC对象,相当于NSObject * ; 2> id的定义: typedef struct objc_object{ Class isa; } *id; 3> id 指针不需要再加上 * 4> 调用一个不存在的方法,编译原创 2015-12-14 14:27:17 · 421 阅读 · 0 评论 -
OC_继承
继承: self:引用消息接受者 super:引用消息接受者的父类 @class 编译器不需要处理整个h文件,只要知道使用到的名字是个类名。 重写: 子类重新是现实父类中的某个方法,覆盖父类的方法. 1> 不允许子类和父类拥有相同名称的变量. 2> 父类必须声明在子类的前面 3> 调用某个对象的方法时,优先去当前的对象中找,如果找不到,去父类中找.原创 2015-05-04 14:13:47 · 400 阅读 · 0 评论 -
OC_多态
多态:多种形态 来自不同类的对象可以定义共享相同名称的方法(不同类名,相同方法名) id类型可以存储任何对象。 父类指针,指向子类对象 调用方法时,会检测对象的真实类型代码示例:@interface Dog ()-(void)run;@end@implementation Dog-(void)run{ NSLog(@"--dog run");}@end@int原创 2015-12-11 14:44:11 · 319 阅读 · 0 评论 -
OC_类方法
弱语法:只声明不实现会编译警告,运行报错。 如果只实现不声明,会编译警告。 类方法: 1> +号方法 2> 类名调用 类方法好处: 1> 类方法不依赖于对象,执行效率高 2> 能用类方法尽量用类名原创 2015-12-09 14:10:12 · 265 阅读 · 0 评论 -
OC语法注意点
1. 需要设置按钮的image和backgroundImage,建议先把按钮类型改为custom,才能保证设置成功。如果button是system类型,设置网络图片时,只会改变颜色。2. 属性名不能以new开头。以new开头会报错,需要你返回一个对象。3. 只有在init开头的构造方法中,才允许对self进行赋值。- (instancetype)initwithName:(NSString *)n...原创 2018-05-29 15:25:25 · 258 阅读 · 0 评论