OC之补充要点(笔记)

OC之补充要点(笔记)
1、类:
类中主要包含的内容是特征和行为;源代码逻辑组织结构包括声明部分和实现部分。
2、属性:@property和@synthesize
属性包含set和get方法的声明和实现,另外也默认提供了实例变量,该实例变量与属性名称一致。属性总共替换掉了三部分,归根到底还是通过操作方法来控制实例变量。(重点:让我们知道属性到底在干什么用的)
例子:
.h文件
Student{
第一部分:
//实例变量
int age;
NSString *name;
}
第二部分:
//变量age的访问接口
-(void) setAge:(int) a;//setter赋值方法
-(int) age;//getter取值方法

.m文件
第三部分:
//上述方法的具体实现
-(void) setAge:(int) a{age=a;}
-(int) age{return age;}

//为简化上述过程,使用OC编程语法 属性
.h文件写属性
@property()int age; 这一行替换掉了第二部分代码,也就是方法声明部分
@synthesize age;这一行替换掉了第一部分和第三部分代码,也就是实例变量的声明和方法的实现

3、方法:单例;便利构造器;自定义初始化
4、内存:
野指针;一个指针指向内存的 内容已经被释放或者不知道指向什么东西。解决方法@property(retain,nonatomic)
内存泄露:内存内容长期持有,但没有任何指针指向它,导致其他对象无法访问这块内存。解决方法父类dealloc。[super dealloc]重写父类方法

便利构造器(类方法)中记得[return autorelease]; 交给自动释放池来管理。
如果写项目时选中ARC的时候,那么以后内存管理就由计算机底层自身发送release,也就是说在IOS 5以后,我们就不用写release,计算机会帮我们自动发送这个动作。

5、数据存储区域
-(void) sayHi{
NSString *n=@"hello";
for(int i=0;i<5;i++){
NSLog(@"%@",n);
}
}
栈区:
放在大括号内部的C语言基本数据类型,自动放入栈区,如:int、 float、 double、 struct 、char,不用管理内存,直接被机器回收。

堆区:
自己手动开空间的放入堆区,如alloc ,当然要手动释放release。我们现在主要操作的就是这个区域。

常量区:
常量数据应该储存在常量区中,永不释放。如:hello、0、5等   static静态的东西也放入常量区

代码段:
通常是指用来存放程序执行代码的一块内存区域。
函数、存代码

6、数组对象排序 块语法 (block 语法)
block函数声明:
Int (^testBlock)(int a, int b);
返回值类型 (^block名字)(传入参数)

7、(重点)区分三种导入的区别:#include ; #import;  @class
#include:
C标准,不支持重复导入;

#import:
OC支持重复导入;不支持交叉编译

@class:
@class一般用于头文件中需要声明该类的某个实例变量的时候用到,在m文件中还是需要使用#import  用这个方式解决交叉编译






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值