以後開發中常用的知識和小技巧:
需要掌握的第三方框架:
網絡請求類:AFNetworking(必須)、ASIHTTPRequest(和可能會用到,儘量掌握)
圖片加載類:SDWebImage(必須)
數據庫: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]來判斷)