10款iOS高效開發(fā)必備的Objective-C類庫
??MBProgressHUD??——進展指示符庫
蘋果的應用程序一般都會用一種優(yōu)雅的,半透明的進度顯示效果,不過這個API是不公開的,因此你要是用了,很可能被清除出AppStore。而MBProgressHUD提供了一個替代方案,而且在用戶角度上,實現(xiàn)的效果根本看不出和官方程序有什么差別。同時還提供了其他附加功能,比如虛擬進展指示符,以及完成提示信息。整合到項目里也很容易,這里不細談了。
??ASIHttpRequest??——HTTP Network庫
iPhone當然也有自己的HTTP Network API,那為什么要用ASIHttpRequest呢?因為官方的API簡直跟話癆似的,太羅嗦了!ASIHttpRequest庫極大的簡化了網(wǎng)絡(luò)通信,提供更先進的工具,什么文件上傳工具,重定向處理工具、驗證工具、等等。只要你手頭的東西跟HTTP有關(guān),用這個絕對能讓你感覺道生活有美好!先看一段代碼就體會到了。
[代碼]:
(void) loadAppDevMag
{
NSURL *url = [NSURL URLWithString:@"http://www.appdevmag.com"];
ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
[request setDelegate:self];
[request startAsynchronous];
}
- (void)requestFinished:(ASIHTTPRequest *)request
{
// Use when fetching text data
NSString *responseString = [request responseString];
}
??JSON Framework??——JSON支持
如果你做的應用和網(wǎng)站服務(wù)器有交互,那就得用到JSON了。但事實上,iOS平臺的原生類庫根本就不支持JSON,這就略犀利了吧?不過JSON框架滿足了你的所有需求,包括一個解析器將JSON字符串解析成對象;以及一個生成器從對象生成字符串。這個庫根本就是太流行了,JSON提過很多次了,具體特點就不多講了,所謂“一段代碼勝千言”,下面用一段代碼演示一下吧。
[代碼]:
// JSON string -> NSDictionary
NSString *jsonString = @"{\"foo\": \"bar\"}";
NSDictionary *dictionary = [jsonString JSONValue];
NSLog(@"Dictionary value for \"foo\" is \"%@\"", [dictionary objectForKey:@"foo"]);
// NSDictionary -> JSON string
NSString *newJsonString = [dictionary JSONRepresentation];
??Flurry??——詳盡的使用統(tǒng)計
通過Furry你可以得到應用的用戶人數(shù),用戶活躍度,用戶來源等統(tǒng)計信息。但是他最厲害的地方是,你可以追蹤應用本身的事件和錯誤記錄,所有這些數(shù)據(jù)都會在一個類似Google Analytics的界面上顯示,這樣就很容易掌握用戶的行為和出現(xiàn)的問題。當然,這個星球上很多統(tǒng)計工具,但是這款是作者個人比較推崇的解決方案。
??RegexKitLite??——正則表達式支持
正則表達式大家都知道。但是iPhone SDK居然當他不存在?這怎么能忍啊!果斷用RegexKitLite。雖然叫的是Lite,但是功能很full。示例代碼。
[代碼]:
// finds phone number in format nnn-nnn-nnnn
NSString *regEx = @"[0-9]{3}-[0-9]{3}-[0-9]{4}";
for(NSString *match in [textView.text componentsMatchedByRegex:regEx]) {
NSLog(@"Phone number is %@", match);
}
??Facebook iOS SDK??——Facebook API類庫
大體來講就是iPhone上的Facebook login,完全支持Facebook Graph API和the older REST api。如果你的應用跟Facebook有關(guān),相信我,用這個吧。
??SDWebImage??——簡化網(wǎng)絡(luò)圖片處理
用SDWebImage調(diào)用網(wǎng)站上的圖片,跟本地調(diào)用內(nèi)置在應用包里的圖片一樣簡單。操作也很簡單,舉例說明
[代碼]:
[imageView setImageWithURL:[NSURL URLWithString:@"http://examp
類似的功能在Three20里也有,這個過會兒再說。相比而言,SDWebImage主要是提供一個小而精的簡捷方便的解決方案
??GData client??——iPhone上所有Google相關(guān)服務(wù)的類庫
名字就說明一切了。跟Google相關(guān)的,值得一提的是,這個項目很開放。有很多示例程序供下載。
??CorePlot??——2D圖形繪圖儀
CorePlot有很多解決方案將你的數(shù)據(jù)可視。,同時也會提供各種迷人的圖形效果,比如棒狀圖、餅狀圖、線狀圖等等,在他們網(wǎng)站上也提供了大量的范例圖形,很多股票價格應用,游戲分數(shù),個人財務(wù)管理都在用。
??Three20??——通用iOS庫
Three20類庫是Facebook自己做的,大而全是他***的特色。把他整合到已有的項目中可能得費點周折,不過如果一開始你就用上了Three20,尤其是牽扯到很多web相關(guān)的項目的時候,你就能深刻體會到神馬叫給力了。