摘要:
1、copy 使用类型 :NSString,block 2、assign使用类型 :delegate,int,float,NSInteger,bool,枚举,结构体... 3、retain使用类型 :NSArray,NSDate 4、strong使用类型 :NSString/block以外的OC对象 阅读全文
摘要:
一、多个对象之间的内存管理 1.你想使用(占用)某个对象,就应该让对象的计数器+1(让对象做一次retain操作) 2.你不想再使用(占用)某个对象,就应该让对象的计数器-1(让对象做一次release) 3.谁retain,谁release 4.谁alloc,谁release 二、set方法的内存 阅读全文
摘要:
僵尸对象:内存已经被回收的对象。 野指针:指向僵尸对象的指针,向野指针发送消息会导致崩溃。野指针错误形式在Xcode中通常表现为:Thread 1:EXC_BAD_ACCESS,因为你访问了一块已经不属于你的内存。 1、什么是僵尸对象? 简而言之,就是过度释放的对象。 2、僵尸对象有什么特点? 如果 阅读全文
摘要:
断点类型: 1.异常断点 异常断点是代码出现问题导致编译器抛出异常时触发的断点。它在断点导航器中设置。点击+号,选择Exception Breakpoint选项。如下图3-1所示 Exception选项可以让你选择响应Objective-C对象抛出的异常,也可以选择响应C++对象抛出的异常。 Bre 阅读全文
摘要:
移动设备的内存及其有限,每一个APP所能占用的内存是有限制的。 什么行为会增加APP的内存占用? 创建一个oc对象 定义一个变量 调用一个函数或者方法 内存管理范围 任何继承了NSObject的对象 对其它非对象类型无效 简单来说: 只有oc对象需要进行内存管理 非oc对象类型比如基本数据类型不需要 阅读全文
摘要:
iOS中消息传递方式 在iOS中有很多种消息传递方式,这里先简单介绍一下各种消息传递方式。 1、通知:在iOS中由通知中心进行消息接收和消息广播,是一种一对多的消息传递方式。 NSNotificationCenter消息通知机制,向NSNotificationCenter中addObserver后, 阅读全文
摘要:
1、在ARC环境下: instancetype用来在编译期确定实例的类型,而使用id的话,编译器不检查类型, 运行时检查类型。 2、在MRC环境下: instancetype和id一样,不做具体类型检查。 id 可以作为方法参数传递, intancetype 不能。 id 可以去接受对象, inst 阅读全文