1、类别与扩展:
类别能增加功能,不能定义变量。。类别就是在“ @interface 类名()”,“@implementation 类名()”括号里加东西的;扩展不能增加功能,能定义变量。。类名后面加括号就代表扩展,标示可以在下面定义实例变量。
2、实例变量就是成员变量,全局变量是定义在类外面的变量。。
3、@synthesize 属性 = xxx;
将属性改为以实例变量的形式存在。(不会有下划线了)但是setter和getter方法不会变,他们是在.h文件里就已经生成了的
4、KVC与KVO:
KVC是通过一个名字来访问成员变量。。
KVO是观察一个属性的变化:在A设置观察,当A所观察的对象B有属性的值改变了,就会通知A。。这样可以用在刷新数据上,一旦数据发生改变,就会自动重新加载。eg:一个学生的成绩单有总成绩和各科成绩,一旦一科目成绩发生改变,则会自动重新计算总成绩。
5、保存文件的方法:
writeToFile 归档 userDefault FileManager
6、第三方框架:
AFNetworking / ASIHTTPRequest / MKNetwork
7、GET方法是直接添加在网址后面的键值对;POST方法是添加在body里的,比GET安全
8、基于 珊哥代码 --> ManggoNetWork 的整理:
思路:
封装一个请求类-->封装网络管理类-->发送通知...
封装请求类:
初始化一个网址,传路径 --> 创建GET请求 --> 创建POST请求 --> 创建HTTP请求 ( 判断是GET还是POST请求 ,再选择调用 ) --> 创建开始和取消下载的方法 ( 开始下载时调用NSURLconnection的4个代理方法 ) --> NSURLconnection的四个代理方法( 失败、响应、分次接收、下载完成 ) 。。
封装网络管理类:
创建单例类对象 --> 初始化对象,定义数组,用来存下载数据 --> 开始请求,定义方法、头域等 --> 数据解析,调用开始请求方法,传入参数,下载完成后发送通知将数据传递出去。。
9、通知不能跨线程。。。
//发送通知
[[NSNotificationCenter defaultCenter] postNotificationName:@"anan" object:self];
post:发送,object表示通知的发送者,self:发送者为自己
//接收通知
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(noti:) name:@"anan" object:nil];
addObserver:接收方,object:表示只只接收object对象的通知,nil指接收来自任何对象发送的通知。。
10、类方法由类直接调用,不要创建对象;类方法里面不能用外部定义的变量,因为它没有对象。。
静态变量只会初始化一次