Elliot's Blog

追求卓越的设计师

iOS之UIImage对象优化

UIImage optimization

一、imageNamed和imageWithContentsOfFile的区别 在iOS开发中生成一个UIImage对象的方法通常有两种 利用imageNamed方法 使用imageWithContentsOfFile方法 下面介绍这两中方法的区别: imgeNamed [UIImage imageNamed:@"hearderImage"] 使用这个方法生成的UII...

iOS之执行一个函数的3种方法

Three ways to Call a function!

版权声明:本文为博主原创文章,未经博主允许不得转载 执行一个函数的3种方法 在iOS中调用方法也就是发送消息,实际会被转化为IMP调用函数执行;那么如果我们能够跳过发送消息这一步的话,是可以优化执行时间的;这也是一个优化思路,只是这种优化效率太低了,基本可以忽略;但是我们还是可以了解一下; 先讲一下系统IMP函数 默认情况下,系统自带的IMP被定义为无参数无返回值的函数; type...

iOS 之 多线程CoreData

Multithreading with Core Data on iOS

版权声明:本文为博主原创文章,未经博主允许不得转载 iOS 之多线程CoreData 译:Multithreading with Core Data on iOS. 不久前我根本没有意识到多线程coredata,直到Mac lion系统出来那天。但是随着iOS5中上下文context层次的出现和block使用的流行,多线程coredata变得触手可及。 当我就职于Resonate时,我...

iOS 之 CoreData学习笔记

CoreData Learning

版权声明:本文为博主原创文章,未经博主允许不得转载 CoreData学习笔记 0、概念 1.数据最终的存储类型可以是:SQLite数据库,XML,二进制,内存里;类型定义如下: // Persistent store types supported by Core Data: COREDATA_EXTERN NSString * const NSSQLiteStoreType API...

iOS 之 Lock浅析

Analysis of Lock In iOS

版权声明:本文为博主原创文章,未经博主允许不得转载 Lock浅析 本文旨在了解iOS中的几种锁; 1、OSSpinLock 自旋锁 性能最高的锁。原理很简单,就是一直 do while 忙等。它的缺点是当等待时会消耗大量 CPU 资源,所以它不适用于较长时间的任务。对于内存缓存的存取来说,它非常合适。 自旋锁几乎不进入内核,仅仅是重新加载自旋锁。 如果自旋锁被占用时间是几十,上百纳秒...

iOS 之 UIcollectionView学习

UIcollectionView Learning

版权声明:本文为博主原创文章,未经博主允许不得转载 首先UICollectionView的确非常强大,只要完成布局,可以变化出很多种风格的界面,那么这里只介绍最常用的界面布局,也就是网格界面布局 那么直接上代码(都是纯代码完成界面布局): 首先是UICollectionViewFlowLayout的初始化,作用是用来布局,在UICollectionView中纯代码的初始化方法是需要用到这...

iOS 之 Socket学习

Socket Learning

版权声明:本文为博主原创文章,未经博主允许不得转载 公司项目有用到socket,所以这几天学习了下,以前做的网络这块都是用的HTTP,也就是请求–响应这种应答式的方式。这种的话如果是比较小的项目还是蛮合适的,能够节省资源。但是比较大的项目的话就比较劣势了,而用socket就比较好,因为项目中网络请求比较多,时不时的需要发请求,socket的响应速度比HTTP要快,用户体验会要好很多。 S...

iOS 之 图片压缩与剪切

版权声明:本文为博主原创文章,未经博主允许不得转载 有时候为了优化性能,减少内存,提升流畅度,需要对图片进行压缩或者剪切; 在保证质量以及清晰度的情况下,对图片处理,对优化性能有很明显的提升。 压缩的图片的步骤很简单: 直接上代码: //对图片尺寸进行压缩-- -(UIImage*)imageWithImage:(UIImage*)image scaledToSize:(CGSize...

iOS 之 枚举加位操作

版权声明:本文为博主原创文章,未经博主允许不得转载 在iOS中常看到很多枚举加左移操作,那么为什么要这样写呢? 我觉得这样写的好处有两个,其一是易读性更高,左移操作符前后两个数据可以分别代表不同的含义,其二就是为了和其他未操作符结合起来表示或的含义; 举个简单的例子: typedef NS_OPTIONS(NSInteger, RefreshType) { RefreshTy...

缓存策略

Cache policy

版权声明:本文为博主原创文章,未经博主允许不得转载 常用的缓存策略 如果想要自己实现一套缓存框架的话,常用的缓存策略都是需要了解一下的,不能只知道FIFO; 这里介绍三种操作系统中的三种缓存策略;各有优缺点,可以根据项目的实际情况选择; 目的: 当缓存需要被清理时(比如空间占用已经接近临界值了),需要使用某种淘汰算法来决定清理掉哪些数据。 缓存淘汰算法有下面几种 FIFO:Fir...