Elliot's Blog

追求卓越的设计师

iOS 之 DNS的缓存

DNS Cache

版权声明:本文为博主原创文章,未经博主允许不得转载 DNS缓存 DNS的缓存策略,tcp连接优化处理 看了一篇DNS缓存的博客,想到我们自己的项目中也有和这个机制,于是整理了一下 大神博客的核心思路: 降低DNS请求带来的延迟 客户端app的请求第一步都是DNS解析,直接跳过DNS解析这一步,能提升网络性能 预防DNS劫持 DNS劫持指的是改变DNS请求的返回结果...

iOS 之 选择Blocks还是Delegates

Block Or Delegate?

版权声明:本文为博主原创文章,未经博主允许不得转载 选择Blocks还是Delegates 在设计接口是常常纠结是选择Block还是Delegate回调数据,之前看到一个博客,总结一下仅作为学习之用; 1、如果对象有超过一个以上不同的事件源,使用delegation(比如多个参数的delegate,block最好是只返回确定意义的1~2个参数)。 2、如果一个对象是单例,不要使用de...

学习swift笔记Tips

Swift Learning Tips

学习swift笔记Tips 该篇文章是学习swift 2.2官方文档时,通过和OC对比总结的30个tips;官方swift文档更新后,可能有些地方有一些出入,所以最好还是直接看官方文档;如有不到位的地方,欢迎指正; 1、 nil在swift中是一个确定的对象,任何可选对象都可以设置为nil;而在oc中nil代表一个空指针,表示对象不存在。 2、 在swift中不允许对nil发消息,会c...

OC高级编程学习总结之GCD(一)

Grand Central Dispatch

版权声明:本文为博主原创文章,未经博主允许不得转载;如需转载,请保持原文链接。 OC高级编程学习总结之GCD(一) 该篇是对Objective-c高级编程一书的学习总结,有不到位的地方建议去看原书 1、什么是GCD? Grand Central Dispatch(GCD)是异步执行任务的技术。一般将项目中线程管理用的代码在系统级中实现,开发者只需要定义想执行的任务并追加到适当的Dis...

Tableview优化实践

Tableview Optimization!

版权声明:本文为博主原创文章,未经博主允许不得转载 Tableview优化实践 这里首先说一个概念,为什么iOS的滑动频率FPS是60。 iOS 的显示系统是由 VSync 信号驱动的,VSync 信号由硬件时钟生成,每秒钟发出 60 次(这个值取决设备硬件,比如 iPhone 真机上通常是 59.97)。iOS 图形服务接收到 VSync 信号后,会通过 IPC 通知到 App 内。A...

iOS-inline内联函数

Inline function

版权声明:本文为博主原创文章,未经博主允许不得转载 inline关键字 inline关键字是用于内联函数的,就相当于宏定义一样,是一段直接在函数中展开的代码(宏是直接文本替换) inline目的是用于取代宏定义的函数代码; 取代这种形式的原因如下: 1. C中使用define这种形式宏定义的原因是因为,C语言是一个效率很高的语言,这种宏定义在形式及使用上像一个函数,但它使用预处理器...

总结iOS存储方式

Summary of iOS storage

总结iOS存储方式 文件存储,实质是生成文件保存在磁盘中 NSKeyedArchiver NSManagerFile 数据库存储:Sqlite、coredata、FMDB等(实质是文件存储) keychain(系统级别的存储) 1、NSKeyedArchiver: 采用归档的形式来保存数据,该数据对象需要遵守NSCoding协议,并且该对象对应的类必须提供encode...

iOS之内存那些你不知道的事

iOS memory that you do not know

iOS之内存那些你不知道的事 首先来复习一下iOS的内存基本知识 内存引用计数的实现 GNUstep的实现是将引用计数保存在对象占用内存块头部的变量中 好处是: 少量的代码即可完成。 能够统一管理引用计数内存块和对象引用计数内存块 苹果的实现是保存在引用计数hash表中 好处是: 对象用内存块的分配无需考虑内存块的头部 引用计数表各记录中存有内存块地址,...

iOS 之 Block深入浅出

Stack Of Thread Study Note

版权声明:本文为博主原创文章,未经博主允许不得转载;如需转载,请保持原文链接。 Block深入浅出 什么是bolck Block是OC对闭包实现的一个对象,为什么说Block是对象了,因为在Block的数据结构中存在isa指针 block分为三种:NSConcreteGlobalBlock、NSConcreteStackBlock、NSConcreteMallocBlock。 ...

iOS 之 基本的异常处理

ExceptionHandle In iOS

版权声明:本文为博主原创文章,未经博主允许不得转载;如需转载,请保持原文链接。 iOS 之 基本的异常处理 一般的崩溃分为3种情况,一是系统本身的崩溃,一是第三方库的崩溃,一是应用本身的崩溃,前面两种我们是基本没办法处理,且能处理的情况非常少;就第三种情况比较常见,是因为写代码时出现出现失误导致的bug,智者千虑必有一失,再厉害的高手也有失误的时候;所以为了处理这种bug,不至于cras...