Object - C基础篇(-)

什么是协议
是一种语法  像现实中的 劳动协议 等
规范接口  实现对象之间的通信
只是声明方法  遵守协议的类  来实现
方法有  必须实现 和不必须实现两种
常用于 代理 深浅拷贝  归档(NScoding)  规范接口
不同的类   想做相同的事情  常用协议规范他们的行为  进而达到规范接口的目的
oc没有多继承  所以用协议
比如 以后公司里 代码的封装 不同的类 常用 协议规范
arc
1.ios5之后 出现的 一种 内存自动管理机制*(还会自动检测 数据类型)
不需要 像以前一样 通过 retain 使引用计数器
+1,或者手动添加release使引用计数器减一
或者 AUtolease

不能显示调用 deleaoc

retain/copy
使用copy必须遵守NScoping协议
retain 使对象引用计数器+|
assign直接赋值 不会是对象引用计数器加减
autorelease把对象的地址 放到离他最近的 自动释放池里 延时释放
dealloc 对象的引用计数器减为0的时候 自动调用 dealloc

、、、、、、、、、、、、、
self.name =XX是一个set方法 可以KVO监听(set/kvc)内部考虑内存管理
_name只是一个简单的变量赋值,在ARC下要考虑内存 ,因为默认这是一个强引用指针

类别
升级一个类、给原有的类增加方法 2不能增加属性
3继承 父类所有的方法和属性(包括父类用类别增加的方法也能继承)
strong weak
是ARC的语法,weak 弱引用指针 weak 指向的对象 可以直接赋值,而且 一旦这个对象被销毁,weak修饰的指针置为nil
strong 是强引用指针,会使引用计数器 自动加+1

weak/asign
1都有直接赋值的意思
2weak 是修饰弱引用指针的,是ARC的语法。asign在ARC和MRC下都能用,ARC下只能修饰一些基本数据类型,MRC下也可以是修饰弱引用对象地址。

混编
在工程target设置中
arc  -fno-objc-arc
-fobjc-arc
o-c多继承
用协议代替但 本质是没有多继承的,只是可以遵守多个协议,也能有继承多个类的效果,
实现多个协议方法,进而有多继承的效果,只是类比,但没有毛线的关系。
o-c有没有私有变量,和私有方法,如果没有 怎么实现

成员变量默认是protect的 受保护的,也可以修饰成私有的provate,
但是 没有私有方法
在声明部分不声明(或者在类的匿名类别中声明) 在类的实现部分 实现,实现私有的效果,但是本质是没有私有方法的,因为可以用选择器进行访问,这就是o-c的动态机制,根本没有真正的私有

#include#import@class
#import不用添加条件编译#include必须要条件编译 防止头文件多次被包含导致重复定义
@class前向引用申明,目的是防止,相互包含,告诉编译器,我后面会声明,现在这里定义一下,请放行。


只copy 对象引用  ()归档时深拷贝

MVC 框架设计模式好几十了,现在c层过重,降低了编辑效率,所有有一种编辑叫 MVVM

是对象独立化  代码复用 增强健壮性 降低软件成本
观察者模式
通知,KVO

posted on 2015-11-11 20:38  种着庄稼敲代码  阅读(150)  评论(0编辑  收藏  举报