摘要: Block基本概念 学习的时候注意和指向函数的指针对比学习 什么是Block Block是iOS中一种比较特殊的数据类型,用来保存某一段代码 Block的作用 Block用来保存某一段代码, 可以在恰当的时间再取出来调用功能类似于函数和方法 问题3:Block的格式 答: Block的格式: 返回值 阅读全文
posted @ 2016-03-04 20:34 wc&Home 阅读(145) 评论(0) 推荐(0) 编辑
摘要: 分类基本概念 书写Category的格式 // 分类的声明 @interface ClassName (CategoryName) NewMethod; //在类别中添加方法 //不允许在类别中添加变量 @end ClassName: 需要给哪个类扩充方法 CategoryName: 分类的名称 N 阅读全文
posted @ 2016-03-04 20:30 wc&Home 阅读(328) 评论(0) 推荐(0) 编辑
摘要: ARC ARC的原理是什么 当ARC开启时,编译器将自动在代码合适的地方插入retain, release和autorelease,而作为程序猿,完全不需要担心编译器会做错(除非开发者自己错用ARC了)。 ARC有什么优点 完全消除了手动管理内存的烦琐, 让程序猿更加专注于app的业务 基本上能够避 阅读全文
posted @ 2016-03-04 20:19 wc&Home 阅读(476) 评论(0) 推荐(0) 编辑
摘要: autorelease基本概念 什么是自动释放池? autorelease是一种支持引用计数的内存管理方式,只要给对象发送一条autorelease消息,会将对象放到一个自动释放池中,当自动释放池被销毁时,会对池子里面的所有对象做一次release操作 自动释放池的优点是什么 不用再关心对象释放的时 阅读全文
posted @ 2016-03-04 20:14 wc&Home 阅读(242) 评论(0) 推荐(0) 编辑
摘要: @class 什么是@class?如何使用@class? @class可以简单地引用一个类 @class具体使用: 在.h文件中使用@class引用一个类 在.m文件中使用#import包含这个类的.h文件 #import 和@class的区别 import是一个预编译指令, 他会将""中的文件拷贝 阅读全文
posted @ 2016-03-04 20:08 wc&Home 阅读(257) 评论(0) 推荐(0) 编辑
摘要: 堆和栈 栈(操作系统):由操作系统自动分配释放,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈(先进后出); 堆(操作系统):一般由程序员分配释放,若程序员不释放,程序结束时可能由系统回收,分配方式类似于链表。 内存管理 所谓内存管理, 就是对内存进行管理, 涉及的操作有: 分配内 阅读全文
posted @ 2016-03-04 20:05 wc&Home 阅读(257) 评论(0) 推荐(0) 编辑
摘要: SEL的类型 SEL类型代表着方法的签名,在类对象的方法列表中存储着该签名与方法代码的对应关系 SEL作用 SEL类型的第一个作用, 配合对象/类来检查对象/类中有没有实现某一个方法 SEL类型的第二个作用, 配合对象/类来调用某一个SEL方法 配合对象将SEL类型作为方法的形参 哪个方法是用来检验 阅读全文
posted @ 2016-03-04 19:54 wc&Home 阅读(156) 评论(0) 推荐(0) 编辑
摘要: load方法 load方法调用时间: 只要程序启动就会将所有类的代码加载到内存中, 放到代码区 调用次数 load方法会在当前类被加载到内存的时候调用, 有且仅会调用一次 load方法在继承中的使用 如果存在继承关系, 会先调用父类的load方法, 再调用子类的load方法 + (void)load 阅读全文
posted @ 2016-03-04 19:51 wc&Home 阅读(227) 评论(0) 推荐(0) 编辑
摘要: 类工厂方法 用于快速创建对象的类方法, 我们称之为类工厂方法 类工厂方法应用场景 类工厂方法中主要用于给对象分配存储空间和初始化这块存储空间 类工厂方法使用规范 规范: 一定是类方法 + 方法名称以类的名称开头, 首字母小写 一定有返回值, 返回值是id/instancetype 在类工厂方法实现中 阅读全文
posted @ 2016-03-04 19:49 wc&Home 阅读(498) 评论(0) 推荐(0) 编辑
摘要: 1.id在编译的时候不能判断对象的真实类型 instancetype在编译的时候可以判断对象的真实类型 2.如果init方法的返回值是instancetype,那么将返回值赋值给一个其它的对象会报一个警告 如果是在以前, init的返回值是id,那么将init返回的对象地址赋值给其它对象是不会报错的 阅读全文
posted @ 2016-03-04 19:43 wc&Home 阅读(165) 评论(0) 推荐(0) 编辑