[Three20] Three20的擴充模組

转载 2011年01月16日 23:20:00

在前兩篇介紹Three20模組架構的文章中,各位讀者應該已經對於Three20的各個模組有大致的了解,在這篇文章中我們將看看Three20 的擴充模組,也就是JSON/XML的framework。

模組相依性

如同Three20本身的模組,擴充模組也有一些相依的模組,如下圖:

    -------------   ------------
| extJSON | | extXML |
------------- ------------
----------------------------
| Network |
----------------------------
| Core |
----------------------------

這些以ext開頭的模組便是這次所要談額外的擴充模組。

extThree20XML

extThree20XML提供了一個方便的介面讓開發者們能夠進行XML的解析,而負責的類別正是TTXMLParser,相比於 NSXMLParser繁瑣的delegate方法呼叫,TTXMLParser則只需如下的程式碼便可以進行解析:

TTXMLParser* parser = [[TTXMLParser alloc] initWithData:xmlData];
[parser parse];

經過解析之後,parser.rootObject 就會是一個包含XML root node資訊的NSDictionary,裡面會有以下key/value:

  • ___Entity_Name___ – 名稱,透過[parser nameForXMLNode] 可以取得
  • ___Entity_Type___ – 類型,透過[parser typeForXMLNode] 可以取得
  • ___Entity_Value___ –  包含的值,透過[parser objectForXMLNode] 可 以取得

而若是取得的值也是多個XML Node,則會包裝成NSArray。

要注意的是,根據Three20文件記載,這個TTXMLParser並沒有針對記憶體、效率進行優化,所測試過的XML文件都為1MB以下,若是 讀者有需要解析檔案較大的XML文件則需多多注意。

extThree20JSON

而extThree20JSON自然是處理JSON物件的類別了,相對於TTXMLParser,extThree20JSON並沒有提供自己的 JSON Parser,而是引入了筆者以前曾經撰文提到過的json- framework及 YAJL.framework。

上述的這兩套framework所負責的都是JSON的解析,我們只需要選擇一套來使用即可,透過Build Target的指定,我們便可以選擇其中一套作為使用。

TTURLXMLResponse & TTURLJSONResponse

除了上面提到的Parser之外,extThree20XML和extThree20JSON另外分別提供了兩種不同的TTURLResponse 子類別。

在TTURLRequest中,我們可以將response設定為這兩種類別,而當Three20將網路上的資訊下載回來時,便會呼叫 TTURLJSONResponse或是TTURLXMLResponse的解析方法進行處理、驗證,省去自行呼叫方法的時間。

結論

在這篇文章中我們看了JSON、XML此兩個Three20所提供的外掛模組,特別是在網路相關的應用程式中頻繁的會使用到。在下一篇文章中,我們 將深入探索Three20的URL-based Navigation,請各位讀者多多指教!

iPhone第三方框架Three20简介

Phone知名第三方框架Three20簡介: http://www.inside.com.tw/05/11/iphone-framework-three20-introduction 架构简介...
  • wanglang3081
  • wanglang3081
  • 2012年05月18日 10:12
  • 708

IOS开发之开源库Three20应用-------(一)

一:首先到https://github.com/facebook/three20/archives/master下载最新版的Three20库;默认下载路径是当前用户下面的下载文件夹(./Downloa...
  • sanpintian
  • sanpintian
  • 2012年03月20日 14:14
  • 4172

[Three20] Three20 模組架構簡介(下)

延續上一篇文章的介紹,在這次的文章中我們將繼續探索Three20的UI部份,這也是Three20中最令開發人員喜愛的部份。整體架構圖在開始之前,我們先複習一下Three20的階層架構,我們在先前的文章...
  • hyugahinat
  • hyugahinat
  • 2011年01月16日 23:07
  • 621

[Three20] Three20 模組架構簡介(上)

在筆者先前 的Three20文章 中曾經提到,在本月初最新的Three20大改版中,將長久以來令人詬病的龐大程式庫細分為多個模組,本篇文章將針對這些模 組進行簡單的介紹及說明,讓大家能夠對於Th...
  • hyugahinat
  • hyugahinat
  • 2011年01月16日 22:56
  • 1032

Three20 – Three20介绍

最近看了一些iPhone开发的东西,多了解一下也挺好的,所以做一些笔记,纯属笔记,不是什么高深的教程,所以入门看最好了,高手就忽悠悠的飘过吧。:)。Three20是一个还不错的框架,入门的话,做UI可...
  • ydj213
  • ydj213
  • 2011年12月29日 17:28
  • 758

Three20

http://www.yuephone.com/forum.php?mod=viewthread&tid=7&extra=page%3D1 [Three20] Three20系列之T...
  • fightper
  • fightper
  • 2012年04月06日 09:48
  • 319

[Three20] Three20系列之Three20概述

[Three20] Three20系列之Three20概述 Three20在概念上分为四个部分:所有一切的中心是内核(Core),围绕在它周围是的网络(Netwo...
  • diyagoanyhacker
  • diyagoanyhacker
  • 2011年05月04日 19:17
  • 2599

[Three20] Three20介绍

國外一些網路媒體如 Tech Crunch、還有 John Gruber 的網站等,前兩天報導,Joe Hewitt (Facebook 的 iPhone 應用程式的作者)說,他個人打算中止 Face...
  • hyugahinat
  • hyugahinat
  • 2011年01月16日 23:47
  • 1178

Three20 安装

网上安装Three20的文章有好多,把这些都用一遍后,发现大多在XCode4上都不能成功,最后找到个最简单的。原文:http://three20.info/article/2010-10-06-Add...
  • fhbystudy
  • fhbystudy
  • 2012年03月19日 16:34
  • 291

three20 教程 学习笔记 three20 NetWork 详解

还是老规矩我比较喜欢贴代码:void TTNetworkRequestStarted();//开始状态栏小飞轮void TTNetworkRequestStopped();//停止状态栏小飞轮#def...
  • diyagoanyhacker
  • diyagoanyhacker
  • 2011年05月05日 16:30
  • 4612
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:[Three20] Three20的擴充模組
举报原因:
原因补充:

(最多只允许输入30个字)