标签:
字典
1.字典用于保存具有映射关系数据的集合。
2.一个key-value对认为是一个条目,字典是存储key-value对的容器
3.与数组不同,字典靠key存取元素。
4.key不能重复,value必须是对象。如果key重复,value值将被替换。
5.键值对在字典中是无序存储的。
字典分:不可变和可变。
不可变子字典,键值对不可以更改,添加,删除。只能读取。
不可变字典是可变字典的子类。 可以对管理的键值对进行增、删、改。
集合
集合的元素唯一。
存储的元素是无序的。
存储元素必须是对象类型。
集合也分可变和不可变(NSset和NSMutableSet)
类的扩展
类目:category 也叫分类或类别
主要是为没有源代码的类添加方法。
extension 针对的是自己的类,必须有源代码的类。
类目 中允许使用属性 但是实现过程 繁琐, 不建议使用。
一般 在类目中创建方法
延展主要是给类 添加私有变量和私有方法
内存
内存泄漏:就是用完的空间,没有及时回收,然后
内存溢出:就相当于一杯水,已经满了,但是你还往里面倒水,这时水杯里的水将会溢出。
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;
版权声明:本文为博主原创文章,未经博主允许不得转载。
标签:
原文地址:http://blog.csdn.net/j_athena/article/details/46941983