{{ $root.errMsg }}

10 個 iOS 開發人員的經典程式庫

(已刪除)

(已關閉)

(已標記為濫發)

(已保護)


1. MBProgressHUD

 按這裡下載

      MBProgressHUD 在 iOS 上廣受開發者和用家的歡迎,原因其一是招牌的黑色半透明顯示效果加上白色文字正是 iOS 慣用介面,不過這個 API 並不公開,因此使用的話會被蘋果拉下架,MBProgressHUD 提供的正是一個替代方案。

      其二,MBProgressHUD 除了這個常見的旋轉等待提示之外,還提供實際進度指示針和完成提示等附加功能,開發者只需自行更新由 0 到 1 的進度,便可即是更改進度指示針,極之方便。

 

2. ASIHTTPRequest

 按這裡下載

      如果你希望你的 iOS 應用程式可以與網頁伺服器溝通,你需要使用 iOS 原生的 CFNetwork 去做網絡編程。不過作為開發者的你,只需要專注簡單的 HTTP 任務,ASIHTTPRequest 正是一個優雅而強大的解決方案。

 

3. GMGridView

  按這裡下載

      GMGridView 是一個方塊式圖片預覽類庫,讓用家可以透過觸感互動去更改排序。編程上的設計取材自 UITableView 的 datasource 和 delegate,讓開發者能像使用 UITableView 去呈現資料般簡單與便利。

      開發者可以採用慣用的 dequeue 方法去重用方塊,而方塊亦不會被預載(只有可見的方塊才能被載入),果真與 UITableView 酷似。

 

4. RaisedCenterTabBar

這裡下載

      早期 Instagram、Path 和 Dailybooth 均把拍照的快捷按鈕置於 UITabBar 中間,讓用家可以隨時隨地使用生活紀錄功能。

 

5. Facebook iOS SDK

這裡下載

      在社交網絡廣泛流行的年代,如果你想分享相片或者狀態,要分享的地方免不了 Facebook。作為開發人員,更免不能使用 Facebook SDK,所以擁抱它吧。

      另外,Facebook SDK 內置的範例專案 ﹣ Hackbook,裏面對 Facebook API 的運用應有盡有,懶得去看文檔的朋友不妨先參考下入面的碼源。

 

6. ShareKit

這裡下載

      這個 ShareKit 是開發者的終極懶人包。如果你的項目有需要把內容分享到各個社交平台的話,使用 ShareKit 可說不二之選。它可以分享的地方相當齊全,包括︰Delicious、Email、Facebook、Google Reader、Instapaper、Pinboard、Read It Later (Instapaper)、Tumbir 和 Twitter。只需要填好所需的 API Key 便可以使用。

 

7. EGOTableViewPullRefresh

這裡下載

      重新整理 UITableView 的按鈕放哪裡好呢? 其實可以考慮一次直接省去按鈕,像 Facebook 應用程序般只需下拉便表格可以更新網上資訊。

 

8. SDWebImage

   按這裡下載

      開發人員處理網上下載圖片時,需要格外小心。要避免因為網速問題要用家等待圖片下載完才顯示介面。異步下載則可於背景下載圖片,並可在下載完成時立即顯示。

      SDWebImage 除了擁有異步下載功能之外,還提供了 UIImage 的 category 疊加實作,所以應用時只需調用一句簡單的方法即可。

[imageView setImageWithURL:[NSURL URLWithString:@"http://www.ioslib.com/ioslib.png"]];

 

9. SBJson

      iOS 5前原生並不支援 JSON 解析,不得不使用第三方的解析器。SBJson 能把字串解析成NSDictionary,從而再抽取資料。這個解析器幾乎流行到要成為官方工具,所以不用再多講了。

      按這裡下載          

SBJsonParser *jsonParser = [[SBJsonParser alloc] init];
NSError *error = nil;
NSArray *jsonObjects = [jsonParser objectWithString:jsonString error:&error];
[jsonParser release], jsonParser = nil;
NSMutableArrary *people = [NSMutableArray array];
 
for (NSDictionary *dict in jsonObjects)
{
    Person *newPerson = [[[Person alloc] init] autorelease];
    [newPerson setFirstName:[dict objectForKey:@"firstName"]];
    [newPerson setLastName:[dict objectForKey:@"lastName"]];
    [newPerson setAge:[[dict objectForKey:@"age"] intValue]];
    [newPerson setAddress:[dict objectForKey:@"address"]];
    [newPerson setPhoneNumbers:[dict objectForKey:@"phoneNumber"]];
 
    [people addObject:newPerson];
}

 

10. Touch XML

      除 JSON 之外,如果應用程式要和網站伺服器進行資料交換,另外的方法則是使用 XML。Touch XML 把一個叫 libxml2 的 XML C 解析器包裝成 Objective C 的工具,所以用起來就不用深入學習調用 C 語言的方法。

      Touch XML 對 XML 節點進行查詢時,使用行業廣泛採用的 XPath 查詢語言。簡單學習一下便可以很輕鬆駕馭 XML。

      按這裡下載

//  we will put parsed data in an a array
NSMutableArray *res = [[NSMutableArray alloc] init];
 
//  using local resource file
NSString *XMLPath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"piglets.xml"];
NSData *XMLData   = [NSData dataWithContentsOfFile:XMLPath];
  CXMLDocument *doc = [[[CXMLDocument alloc] initWithData:XMLData options:0 error:nil] autorelease];
 
NSArray *nodes = NULL;
//  searching for piglet nodes
nodes = [doc nodesForXPath:@"//piglet" error:nil];
 
for (CXMLElement *node in nodes) {
  NSMutableDictionary *item = [[NSMutableDictionary alloc] init];
  int counter;
  for(counter = 0; counter < [node childCount]; counter++) {
    //  common procedure: dictionary with keys/values from XML node
    [item setObject:[[node childAtIndex:counter] stringValue] forKey:[[node childAtIndex:counter] name]];
  }
 
  //  and here it is - attributeForName! Simple as that.
  [item setObject:[[node attributeForName:@"id"] stringValue] forKey:@"id"];  // <------ this magical arrow is pointing to the area of interest
 
  [res addObject:item];
  [item release];
}
 
//  and we print our results
NSLog(@"%@", res);
[res release];

 

------

額外補充:   

      iOS 5 SDK 的Foundation.framwork已經原生支持json,並稱為NSJSONSerialization。

      用法如下:

[{"id": "1", "name":"Aaa"}, {"id": "2", "name":"Bbb"}]
NSError *e = nil;
NSArray *jsonArray = [NSJSONSerialization JSONObjectWithData: data options: NSJSONReadingMutableContainers error: &e];
 
if (!jsonArray) {
  NSLog(@"Error parsing JSON: %@", e);
} else {
   for(NSDictionary *item in jsonArray) {
      NSLog(@"Item: %@", item);
   }
}

 

 

 

 

 

 

ios  


{{ ctrl.votes | shortNumber: 0 }}
寫於 {{ '2017-07-31T08:44:47.151Z' | calendarTime }}

{{ $root.errMsg }}