1. 程式人生 > >iOS專案中常用第三方庫超全總結

iOS專案中常用第三方庫超全總結

常用第三方

今天就給大家總結一下,我們在專案中用到最多的第三方,免去了大家花時間去搜索,在這裡大家進行了全面的總結.

1. 程式設計框架

2. 載入提示

3. 控制元件佈局

3. 圖片處理

4. 表單驗證

5. 網路檢查

6.圖表展示

7: 時間日曆

8:引導圖

9: 二維碼

2、ZBar 
ZBar 是款桌面電腦用條形碼/二維碼掃描工具,支援攝像頭及圖片掃描,支援多平臺包括 iPhone 手機。同時 ZBar提供了二維碼掃描的 API 開發包。 
https://github.com/ZBar/ZBar

9: 與HTML5互動

10: 搜尋跳轉

11:資料儲存轉化

12: 評分

12. 網路請求

1、ASIHTTPRequest 
這是一個經典的老庫,功能完全而強大,但已經停止更新很久了(iOS5.0停止更新,但是我最近看github上這個專案有新改動)。在不同iOS版本上略微有一些小問題(提醒顯示上的),所以用的時候還是稍微修改一下比較好。 
下載地址:https://github.com/pokeb/asi-http-request

3、MKNetworkKit 
最近做的不錯的一個通訊類庫,具有AFNetworking和ASIHTTPRequest雙方的優點,甚至功能更豐富一些,但是本人還沒有使用過。 
下載地址:https://github.com/MugunthKumar/MKNetworkKit

13. Socket

1、CocoaAsyncSocket 
CocoaAsyncSocket是用的最廣泛的socket開發庫,省略了程式設計師與CFNetwork接觸的時間,延長了程式設計師壽命。 
下載地址:https://github.com/robbiehanson/CocoaAsyncSocket

2、SocketRocket 
SocketRocket是Square開發的一個實現webSocket的庫,可以輕鬆的實現即時通訊。 
下載地址:https://github.com/square/SocketRocket

14. 資料解析

1、SBJSON 
SBJson的解析速度其實是比較慢的,但是不知道為什麼它卻是用的最廣的。 
下載地址:

2、JSONKit 
JSONKit解析速度上最接近iOS原生解析類,當然iOS5.0才開始支援原生解析,所以選擇一個庫還是很必要的。 
下載地址:https://github.com/johnezang/JSONKit

5、TBXML 
TBXML是一套輕量級的DOM方式的XML解析類庫,有很好的效能和低記憶體佔用,不過它不對XML格式進行校驗,不支援XPath,並且只支援解析,不支援對XML進行修改。 
下載地址:https://github.com/71squared/TBXML

6、TouchXML 
TouchXML這也是一套DOM方式的XML解析類庫,支援XPath,不支援XML的修改。 
下載地址:https://github.com/TouchCode/TouchXML

7、KissXML 
KissXML這是一套基於TouchXML的XML解析類庫,只不過實現了支援XML的修改。 
下載地址:https://github.com/robbiehanson/KissXML

8、GDataXML 
GDataXML是Google開發的DOM方式XML解析類庫,支援讀取和修改XML文件,支援XPath方式查詢。

15. 第三方管理

1、fmdb 
fmdb是一個數據庫管理庫,封裝了sqlite相關的sql語句,簡化資料庫操作。 
下載地址:https://github.com/ccgus/fmdb

5、zxing 
zxing是一個開源Java類庫用於解析多種格式的1D/2D條形碼。目標是能夠對QR編碼、DataMatrix、UPC的1D條形碼進行解碼。 其提供了多種平臺下的客戶端。 
https://github.com/zxing/zxing

7、RegexKitLite 
RegexKitLite 是一個輕量級的 Objective-C 的正則表示式庫,支援 Mac OS X 和 iOS,使用ICU 庫開發。 
https://github.com/wezm/RegexKitLite

8、STUtils 
STUtils是一系列的工具集,包含了很多對於iOS原生類的擴充套件,當然也包含一個用於安全儲存使用者密碼STKeyChain。 
https://github.com/ldandersen/STUtils

11、SDWebImage 
SDWebImage呼叫網站上的圖片,跟本地呼叫內建在應用包裡的圖片一樣簡單。操作也很簡單。 
https://github.com/rs/SDWebImage

16. 動畫特效

6:比如篩選、模糊、優化、蒙版、調整大小、旋轉以及儲存等等。同時還提供了一個UIImageView子類從URL非同步載入圖片,並在下載完畢時展示圖片。 
地址:https://github.com/Nyx0uf/NYXImagesKit

二 iOS常見分類

一些必要的類別iOS開發。包括的NSDate,的NSString,NSUserDefaults的,和的UIColor幫助UIImage的方法。

1. NSDate

<code class="hljs erlang has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;"><span class="hljs-pp" style="box-sizing: border-box;">-<span class="hljs-params" style="color: rgb(102, 0, 102); box-sizing: border-box;">(<span class="hljs-variable" style="box-sizing: border-box;">NSString</span> *)</span>formatWithString:<span class="hljs-params" style="color: rgb(102, 0, 102); box-sizing: border-box;">(<span class="hljs-variable" style="box-sizing: border-box;">NSString</span> *)</span>format;
-<span class="hljs-params" style="color: rgb(102, 0, 102); box-sizing: border-box;">(<span class="hljs-variable" style="box-sizing: border-box;">NSString</span> *)</span>formatWithStyle:<span class="hljs-params" style="color: rgb(102, 0, 102); box-sizing: border-box;">(<span class="hljs-variable" style="box-sizing: border-box;">NSDateFormatterStyle</span>)</span>style;
-<span class="hljs-params" style="color: rgb(102, 0, 102); box-sizing: border-box;">(<span class="hljs-variable" style="box-sizing: border-box;">NSString</span> *)</span>distanceOfTimeInWords;
-<span class="hljs-params" style="color: rgb(102, 0, 102); box-sizing: border-box;">(<span class="hljs-variable" style="box-sizing: border-box;">NSString</span> *)</span>distanceOfTimeInWords:<span class="hljs-params" style="color: rgb(102, 0, 102); box-sizing: border-box;">(<span class="hljs-variable" style="box-sizing: border-box;">NSDate</span> *)</span>date;</span></code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li></ul><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li></ul>

2. NSString

<code class="hljs haml has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;">-<span class="ruby" style="box-sizing: border-box;">(<span class="hljs-constant" style="box-sizing: border-box;">NSString</span> *)<span class="hljs-constant" style="box-sizing: border-box;">MD5</span>;
</span>-<span class="ruby" style="box-sizing: border-box;">(<span class="hljs-constant" style="box-sizing: border-box;">NSString</span> *)sha1;
</span>-<span class="ruby" style="box-sizing: border-box;">(<span class="hljs-constant" style="box-sizing: border-box;">NSString</span> *)reverse;
</span>-<span class="ruby" style="box-sizing: border-box;">(<span class="hljs-constant" style="box-sizing: border-box;">NSString</span> *)<span class="hljs-constant" style="box-sizing: border-box;">URLEncode</span>;
</span>-<span class="ruby" style="box-sizing: border-box;">(<span class="hljs-constant" style="box-sizing: border-box;">NSString</span> *)<span class="hljs-constant" style="box-sizing: border-box;">URLDecode</span>;
</span>-<span class="ruby" style="box-sizing: border-box;">(<span class="hljs-constant" style="box-sizing: border-box;">NSString</span> *)stringByStrippingWhitespace;
</span>-<span class="ruby" style="box-sizing: border-box;">(<span class="hljs-constant" style="box-sizing: border-box;">NSString</span> *)<span class="hljs-symbol" style="color: rgb(0, 102, 102); box-sizing: border-box;">substringFrom:</span>(<span class="hljs-constant" style="box-sizing: border-box;">NSInteger</span>)from <span class="hljs-symbol" style="color: rgb(0, 102, 102); box-sizing: border-box;">to:</span>(<span class="hljs-constant" style="box-sizing: border-box;">NSInteger</span>)to;
</span>-<span class="ruby" style="box-sizing: border-box;">(<span class="hljs-constant" style="box-sizing: border-box;">NSString</span> *)<span class="hljs-constant" style="box-sizing: border-box;">CapitalizeFirst</span><span class="hljs-symbol" style="color: rgb(0, 102, 102); box-sizing: border-box;">:</span>(<span class="hljs-constant" style="box-sizing: border-box;">NSString</span> *)source;
</span>-<span class="ruby" style="box-sizing: border-box;">(<span class="hljs-constant" style="box-sizing: border-box;">NSString</span> *)<span class="hljs-constant" style="box-sizing: border-box;">UnderscoresToCamelCase</span><span class="hljs-symbol" style="color: rgb(0, 102, 102); box-sizing: border-box;">:</span>(<span class="hljs-constant" style="box-sizing: border-box;">NSString</span>*)underscores;
</span>-<span class="ruby" style="box-sizing: border-box;">(<span class="hljs-constant" style="box-sizing: border-box;">NSString</span> *)<span class="hljs-constant" style="box-sizing: border-box;">CamelCaseToUnderscores</span><span class="hljs-symbol" style="color: rgb(0, 102, 102); box-sizing: border-box;">:</span>(<span class="hljs-constant" style="box-sizing: border-box;">NSString</span> *)input;
</span>-<span class="ruby" style="box-sizing: border-box;">(<span class="hljs-constant" style="box-sizing: border-box;">NSUInteger</span>)countWords;
</span>-<span class="ruby" style="box-sizing: border-box;">(<span class="hljs-constant" style="box-sizing: border-box;">BOOL</span>)<span class="hljs-symbol" style="color: rgb(0, 102, 102); box-sizing: border-box;">contains:</span>(<span class="hljs-constant" style="box-sizing: border-box;">NSString</span> *)string;
</span>-<span class="ruby" style="box-sizing: border-box;">(<span class="hljs-constant" style="box-sizing: border-box;">BOOL</span>)isBlank;</span></code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li><li style="box-sizing: border-box; padding: 0px 5px;">12</li><li style="box-sizing: border-box; padding: 0px 5px;">13</li></ul><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li><li style="box-sizing: border-box; padding: 0px 5px;">12</li><li style="box-sizing: border-box; padding: 0px 5px;">13</li></ul>

3. NSUserDefaults

<code class="hljs objectivec has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;">+(<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">void</span>)saveObject:(<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">id</span>)object forKey:(<span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">NSString</span> *)key;
+(<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">id</span>)retrieveObjectForKey:(<span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">NSString</span> *)key;
+(<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">void</span>)deleteObjectForKey:(<span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">NSString</span> *)key;</code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li></ul><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li></ul>

4. UIColor

<code class="hljs perl has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;">+(UIColor <span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">*)</span>colorWithHex:(<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">int</span>)<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">hex</span>;</code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li></ul><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li></ul>

5. UIImage + GIF

<code class="hljs objectivec has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;">+(<span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">UIImage</span> *)animatedImageWithAnimatedGIFData:(NSData *)theData;
+(<span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">UIImage</span> *)animatedImageWithAnimatedGIFURL:(<span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">NSURL</span> *)theURL;</code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li></ul><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li></ul>

三 輔助軟體