首页 > 代码库 > iOS开发中的技巧, 注意事项
iOS开发中的技巧, 注意事项
以后开发中常用的知识和小技巧:
需要掌握的第三方框架:
网络请求类:AFNetworking(必须)、ASIHTTPRequest(和可能会用到,尽量掌握)
图片加载类:SD WebImage(必须)
数据库:FMDB
瀑布流:第三方和系统自带的.PS:系统自带的瀑布流只支持iOS6或者以上系统
抽屉效果:有多个如:MMDrawerController
下拉刷新:第三方和系统自带的,PS:系统自带的UIRefreshControl只支持iOS6或者以上系统
UIWebView主要是于JS的交互
ARC是iOS5之后推出的功能:
如果你的项目使用的是MRC,则为ARC模式的代码文件加入-fobjc-arc.
如果你的项目使用的时ARC,则为MRC模式的代码文件加入-fno-objc-arc
分享到第三方应用:ShareSDK或者是友盟,第三方开放平台的注册
地图:百度地图API,高德地图API
网络判断:Reachability
数据统计:TalkingData(了解,知道有这么个东西,以后用的时候查询)
如何进行程序的版本迭代
1、DLog的使用,DLog在DeBug模式下会输出信息,包括方法名,行数以及你想要输出的内容。定义如下(包括ELog):
#ifdef DEBUG
#ifndef DLog
# define DLog(fmt, ...) {NSLog((@"%s [Line %d] " fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__);}
#endif
#ifndef ELog
# define ELog(err) {if(err) DLog(@"%@", err)}
#endif
#else
#ifndef DLog
# define DLog(...)
#endif
#ifndef ELog
# define ELog(err)
#endif
#endif
2、3.5英寸和4.0英寸屏幕的判断,用来做3.5和4.0寸屏幕的适配,iPhone5和iphone5s是4.0寸屏幕
#define iPhone5 ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(640, 1136), [[UIScreen mainScreen] currentMode].size) : NO)
3、根据版本不同,设置不同的文本对齐格式,iOS6.0之后和iOS6之前设置文本的对齐方式的语句不同.
// 当前系统支持的最小版本
__IPHONE_OS_VERSION_MIN_REQUIRED
// 当前系统指出的最大版本
__IPHONE_OS_VERSION_MAX_ALLOWED
#if __IPHONE_OS_VERSION_MIN_REQUIRED >= 60000
#define LOLabelAlignmentCenter NSTextAlignmentCenter
#else
#define LOLabelAlignmentCenter UITextAlignmentCenter
#endif
可以通过以下语句获取当前系统的版本
[[[UIDevice currentDevice] systemVersion] floatValue] >= 7.0(判断当前系统是否大于7.0,可以用来做iOS6和iOS7的适配)
4、给一个RGB值得到对应的UIColor
#define UIColorFromRGB(rgbValue) [UIColor colorWithRed:((float)((rgbValue & 0xFF0000) >> 16))/255.0 green:((float)((rgbValue & 0xFF00) >> 8))/255.0 blue:((float)(rgbValue & 0xFF))/255.0 alpha:1.0]
5、iOS7导航栏和状态栏的定制
http://www.cocoachina.com/applenews/devnews/2013/1104/7287.html
iOS7和iOS6的适配
http://blog.csdn.net/liulushi_1988/article/details/14105187
6、iOS谓词 NSPredicate,知道如何去匹配邮箱,网址
http://blog.csdn.net/long11995563/article/details/9399891
7、代码保护,比如在从数组中取元素的时候,首先判断数组的元素个数,然后在从数组里面取元素;另外从服务器返回的数据,比如字典,在使用之前,首先判断取出来的数据是否是null(因为在服务器端,如果数据库里面没有给默认值的话,可能是空,使用isEqual: [NSNull null]来判断)
iOS开发中的技巧, 注意事项