OC 着重点知识总结

OC 重点知识总结

字典

1.字典用于保存具有映射关系数据的集合。

2.一个key-value对认为是一个条目,字典是存储key-value对的容器

3.与数组不同,字典靠key存取元素。

4.key不能重复,value必须是对象。如果key重复,value值将被替换。

5.键值对在字典中是无序存储的。


字典分:不可变和可变。

不可变子字典,键值对不可以更改,添加,删除。只能读取。

不可变字典是可变字典的子类。 可以对管理的键值对进行增、删、改。


集合

集合的元素唯一。

存储的元素是无序的。

存储元素必须是对象类型。


集合也分可变和不可变(NSset和NSMutableSet)


类的扩展

类目:category 也叫分类或类别

主要是为没有源代码的类添加方法。

extension 针对的是自己的类,必须有源代码的类。

类目中禁止写 成员变量

类目 中允许使用属性 但是实现过程 繁琐, 不建议使用。


一般 在类目中创建方法

 延展主要是给类 添加私有变量和私有方法


方法在哪个类实现的,那么这个方法就属于这个类。 就需要这个类的对象去调用。

3.谁的方法谁调用。


内存

内存泄漏:就是用完的空间,没有及时回收,然后

内存溢出:就相当于一杯水,已经满了,但是你还往里面倒水,这时水杯里的水将会溢出。


OC采用引用技术机制管理内存,当一个新的引用计数志向一个对象时,引用计数器就递增,当去掉一个引用时,引用就递减。当引用计数为0时,该对象就将释放占有的资源。


通常,需要引用计数+1  的 方法有  alloc, retain, copy. 此时要使用release或者autorelease让内存的引用计数-1。


-dealloc 继承自父类的方法,当对象引用计数为0时,由对象自动调用。


copy:所有遵循于NSCopying协议的类,都可以使用copy。

NSString,NSArray,NSDictionary,NSNumber, NSValue;

在系统里, 对不可变类型 使用copy 其效果类似于 retain


 NSMutableArray *marr_Two = [marr copy];   可变数组 拷贝之后 是 重新开辟了一个内存空间 然后+1; 所以 结果为1; 不可变 则是在原有的基础空间之后 +1;

 [marr_Two addObject:@"ok"];  //可变对象拷贝之后的结果是不可变对象。 所以会报错

  NSMutableArray *marr_Two =[marr mutableCopy]; //可变对象拷贝成不可变对象不报错,因为用的是  mutableCopy;


数组或者字典添加一个  对象 ,这个 对象 的引用计数+1;






版权声明:本文为博主原创文章,未经博主允许不得转载。