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]来判断)

原文地址:https://www.cnblogs.com/Dylan-Alice/p/Dylan_iOSProject.html