随笔分类 - iOS
摘要:面试题 iOS 内存分布 stack:栈区 方法调用都是在这里 heap:堆区 alloc 分配的对象 bss:未初始化的全局变量 data:已初始化的全局变量等 text:代码段 程序代码 1.使用CADisplayLink NSTimer 有什么注意点 一般我们在使用NSTimer 或者 CAD
阅读全文
摘要:概念 RunLoop是通过内部维护的事件循环来对事件/消息进行管理的一个对象 RunLoop 就像他的名字一样 就是跑环 就是一个死循环 是一个可以随时休眠 随时唤醒的死循环。 一个手机App之所以能够一直运行 而且在用户点击的时候 做出反应 这些都离不开RunLoop。 iOSApp启动的时候,就
阅读全文
摘要:什么是RunTime OC是一门动态性比较强的编程语言 跟C,C++等静态语言有很大的不同。 静态语言:如C语言 编译阶段就要决定调用哪个函数 如果函数未实现就会报错。 动态语言:编译阶段并不能决定真正调用哪个函数 只要函数声明过 没有实现也不会报错。 OC之所以被称为动态语言 就是因为它把一些决定
阅读全文
摘要:什么是Block Block 又称为“块” 或 “代码块”,作用是用来保存代码,保存在其内部的代码块 如果Block不被调用 这段代码就不会执行 在OC中Block的基本格式是这样的 返回值类型 (^block名) (参数类型 和 数量) = ^(形参 和 数量){ //code }; Block的
阅读全文
摘要:概念 分类是OC中特有的语法,它表示一个指向分类的结构体的指针,原则上只能增加方法 不能增加成员(实例)变量。 我们可以用来 1.声明私有方法 2.分解体积庞大的类文件 探究 我们都知道 一个类的实例对象调用实例方法时 是通过实例对象的isa指针找到类对象 然后在其或者父类对象存储的方法中找到实现的
阅读全文
摘要:什么是KVO KVO的本质是key-Value Observing 俗称 健值监听 可以用与监听某个对象属性值的改变 观察者模式的一种实现 采用isa_swizzling实现。 如果一个对象想要知道另一个对象属性值的改变 我们就可以使用KVO来实现 具体代码如下 #import "ViewContr
阅读全文
摘要:一个NSObject对象占用多少内存 我们都知道 我们平时编写的OC代码 底层实现其实是C/C++,然后编译器再把C/C++代码转换为汇编语言代码,汇编代码最终会变成机器语言。 所以OC的面向对象都是基于C/C++的数据结构来实现的。 那么我们OC中的对象 类 都是基于C/C++什么样的数据结构实现
阅读全文
摘要:UINavigationController一直是iOS开发中最常用的控件之一,但是一般就是工程开始时对其做一些统一的处理。后期操作就比较少了。导致虽然其很常用但是我们的熟悉程度却不是很高。今天就来记录一下我们常用的这个控件. UINavigationController继承自UIViewContr
阅读全文
摘要:从现代计算机电路来看,只有高电平/低电平两种状态,即为0/1状态,计算机中所有的数据按照具体的编码格式以二进制的形式存储在设备中。 直接操作这些二进制数据的位数据就是位运算。在iOS中国呢基本上所有的位运算都是通过枚举声明传值的方式将位运算的真实细节隐藏了起来。 typedef NS_OPTIONS
阅读全文
摘要:按照公司的想法 要开发一款SDK,于是就抽空学习一下静态枯的制作过程. 在IOS中有静态库和动态库的区分,下面我们就来详细介绍一下. 一.静态库和动态库的详细介绍. 我们平时的工程中或多或少都要引入第三方的SDK,至少引用过系统的framework。其实这些SDK和Framework都属于库,库又分
阅读全文
摘要:1.NSOperation,NSOperationQueue 简介 NSOperation,NSOperationQueue是苹果提供给我们的一套多线程解决方案。实际上 NSOperation、NSOperationQueue 是基于 GCD 更高一层的封装,完全面向对象。但是比 GCD 更简单易用
阅读全文
摘要:什么是GCD 全称Grand Central Dispatch 中暑调度器 纯C语言 提供了很多强大的函数 GCD 的优势 GCD是苹果公司为多核的并行运算提出的解决方案 GCD会自动利用更多的CPU内核(比如 双核 四核) GCD会自动管理线程的生命周期 (创建线程 调度任务 销毁线程) 程序员只
阅读全文
摘要:UICollectionView的简单介绍 UICollectionView的结构 由两个方面对UICollectionView进行支持 和tableView一样,即提供数据的UICollectionViewDataSource以及处理用户交互的UICollectionViewDelegate。 另
阅读全文
摘要:一个NSThread对象就代表一条线程 下面是NSThread开启线程的方法 NSThread 创建线程的生命周期 当线程中的任务执行完毕后 线程被释放掉 可以继承NSThread创建一个新类 重写dealloc方法来验证 线程的状态 当线程处于就绪状态时线程会被移到可调度线程池里面(CPU只调度此
阅读全文
摘要:一 什么是进程 进程是在系统中正在运行的应用程序!普通的应用程序并不是进程,只有正在运行的应用程序才是一个进程, 在系统中每个进程之间是相互独立的,每个进程均在其专享的且受保护的内存空间内。但是一个应用程序可以对用多个进程,比如 你可以在MAC上打开两个QQ。 二 什么是线程 一个进程想要执行任务
阅读全文
摘要:关于横竖屏适配 也没做过,今天读别人的源码,遇到了。为了了解清楚,就系统的学习一下。 一 横竖屏方向枚举 关于横竖屏一共有三种枚举 UIInterfaceOrientation UIInterfaceOrientationMask UIDeviceOrientation。 1.1 UIInterfa
阅读全文
摘要:闲来无事 观摩别人的项目 常常发现对UIView的hitTest:withEvent:方法的重写,以前也查过这个方法的用法作用,但是时间一长又忘记了。今天再次看到,就记录一下. 用户触摸屏幕后事件的传递过程 当用户点击屏幕后,UIApplication先响应事件,然后传递给UIWindow。如果wi
阅读全文
摘要:MJExtension是一套常用的"字典和模型之间互相转换"的框架,在项目中也使用过,现在记录一下。随着Swift的普及,在Swift中也有一个类似功能的框架HandyJSON 也非常好用。有空我也会介绍一下这个框架。 MJExtension 能完成的功能 <1> 字典转模型 <2>模型转字典 <3
阅读全文
摘要:哈哈哈 我又来窃取别人的劳动成果了 写的很好呦 http://www.jianshu.com/p/c0eb32443915
阅读全文
摘要:http://www.jianshu.com/p/c5cbb5e05075
阅读全文

浙公网安备 33010602011771号