iOS开发的辅助类

利用闲暇时间整理了一下自己在平时开发中常用的工具类。发到github上了。在这里说明一下吧。

使用方法:

直接引入

  1. 直接下载把iOSHelper文件夹加入到工程里
  2. 在项目的.pch文件中#import “iOSHelper.h”
  3. 添加依赖:Foundation.framework, CoreGraphics.framework, UIKit.framework, libz.dylib

使用cocospod

platform :ios,  '6.0'
pod 'iOSHelper', :git => 'https://github.com/pljhonglu/iOSHelper.git', :tag => 'v0.0.1'

这里说明一下:

使用cocospod有几种方式,我们平时一般是直接引用

pod 'iOSHelper'

这种方式其实是开发者把podspec文件传到cocospod的spec里去了。

另一种方式就是如上的——指定git地址和tag。在我们把代码上传到git之后,我们需要打一个tag,然后我们在项目中指定对应的tag就可以了。

还有一种方式是指定spec文件的位置,这种方式通常是我们把spec文件放在本地,这样我们就可以指定一个本地的地址了。这种方式写的podfile如下:

pod 'MyCommon', :podspec => '~/.cocoapods/repos/master/iOSHelper.podspec'

使用注意

iOSHelper.h 里面引入的类可根据自己的使用情况来修改,用不到的话没有必要全部引入

category说明

category是objc运行时对类的方法进行扩展,也就是说如果没有使用某些方法那么系统是不会加载这个方法的,所以不需要在意一个category里面的方法过多的问题

Core Data 说明

这里的这个coredata比较简单,但是看起来比较直观,另外可以看一下下面的两个coredata相关库

ObjectiveRecord 这个coredata的库亮点在于有一个map的映射关系,方便接口json中的数据直接映射成model。缺点在于非线程安全。代码相对简单,可以把这个与上面的库整合一下

MagicalRecord 这个应该是最好的coredata库了,github排名也很高

UIDevice说明

device扩展中有获取设备ID的相关方法,需注意,UDID相关方法都是通过MAC地址来标识设备的。iOS7以后苹果对其进行了技术处理,MAC地址返回的都是02:00:00:00:00:00,因此UDID方法已经不可用。iOS7请使用UUID方法

感谢

起始这里面的大部分代码都是从网络上摘的,本人只是起到了搬砖的作用,少部分是个人开发中的总结。由于时间较长,代码的具体出处我也不是很清楚了,如果您知道的话麻烦告诉我,我会在这里加上

其他常用的三方库

  • Reachability: 苹果官方的网络状态库,网上看到说用这个库实时获取网络状态会影响性能
  • AHReach: 实时动态检测网络,对于有这样需求的APP使用这个库应该比reachability性能要好些
  • TMCache: tumble的开源项目
  • AHEasing: 路径动画,包含弹性路径
  • GTMBase64: 谷歌code上的开源项目,用于base64编码/解码
  • AFNetWorking: 网络库
  • FMDB: sqlite的库,包含线程安全的一些方法
  • WebViewJavascriptBridge: webview与JavaScript的中间件
  • ObjectiveRecord: 这个coredata的库亮点在于有一个map的映射关系,方便接口json中的数据直接映射成model。缺点在于非线程安全。代码相对简单,可以把这个与上面的库整合一下
  • MagicalRecord: 这个应该是最好的coredata库了,github排名也很高
  • SFHFKeychainUtils: 一个钥匙串的三方库,此处已经集成
  • ARCHelper: 一个适配ARC和MRC的宏定义的库
  • SDWebImage: 主要用于异步加载的库
  • ReactiveCocoa: 一个让objective-c支持函数式编程的库,MVVM模式的好搭档
  • sskeychain: keychain的三方库

更多类库详见: Github-iOS备忘

待完善…

  • 在 NSObject 中加入 block 相关方法
  • 在 NSObject 中加入添加属性的方法
  • CoreData的数据映射(map)