![計(jì)本 iPhone手機(jī)應(yīng)用開發(fā)設(shè)計(jì)(愛炒股)_第1頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-3/7/8716126b-de5d-47ff-bb89-6dbe5641c1f6/8716126b-de5d-47ff-bb89-6dbe5641c1f61.gif)
![計(jì)本 iPhone手機(jī)應(yīng)用開發(fā)設(shè)計(jì)(愛炒股)_第2頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-3/7/8716126b-de5d-47ff-bb89-6dbe5641c1f6/8716126b-de5d-47ff-bb89-6dbe5641c1f62.gif)
![計(jì)本 iPhone手機(jī)應(yīng)用開發(fā)設(shè)計(jì)(愛炒股)_第3頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-3/7/8716126b-de5d-47ff-bb89-6dbe5641c1f6/8716126b-de5d-47ff-bb89-6dbe5641c1f63.gif)
![計(jì)本 iPhone手機(jī)應(yīng)用開發(fā)設(shè)計(jì)(愛炒股)_第4頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-3/7/8716126b-de5d-47ff-bb89-6dbe5641c1f6/8716126b-de5d-47ff-bb89-6dbe5641c1f64.gif)
![計(jì)本 iPhone手機(jī)應(yīng)用開發(fā)設(shè)計(jì)(愛炒股)_第5頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-3/7/8716126b-de5d-47ff-bb89-6dbe5641c1f6/8716126b-de5d-47ff-bb89-6dbe5641c1f65.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、5-2'cang1 市動(dòng)態(tài),把握出售111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 算'suan1著稅基一個(gè)單位,為進(jìn)攻性111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 及'ji11111111111111111111111111111111111111111111111111111
2、11111111111111111111111111111111111111111111111111iP圖u1、圖標(biāo)數(shù)字等。用程序 1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111hone手機(jī)應(yīng)用開發(fā)設(shè)計(jì)(愛炒股)數(shù)學(xué)與計(jì)算機(jī)科學(xué)學(xué)院 計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)105032011126 張民鵬 指導(dǎo)教師:黃欣沂【摘要】在如今一個(gè)經(jīng)濟(jì)正高速發(fā)展的社會(huì)里,越來(lái)越多的人開始將投資的目光移向金融市場(chǎng)。在懵懂與實(shí)戰(zhàn)之間,愛炒股(iStock)軟件應(yīng)運(yùn)而生。愛炒股手機(jī)軟件的設(shè)計(jì)是集股票
3、信息、資訊、模擬炒股于一體的基于IOS操作系統(tǒng)的一款手機(jī)應(yīng)用軟件。運(yùn)用異步加載、單例、通知、MVC等當(dāng)前熱門技術(shù)實(shí)現(xiàn)。它給予更多人一次真實(shí)的體驗(yàn),買入、賣出、撤單,讓極佳的體驗(yàn)效果帶你玩轉(zhuǎn)股市。投資決策、投資組合,為了實(shí)戰(zhàn)而奠定基礎(chǔ)。微博登陸、微信朋友圈分享,讓更多的人來(lái)關(guān)注這場(chǎng)智者的游戲、勇者的戰(zhàn)爭(zhēng)。在設(shè)置欄,你可以更加個(gè)性化。因遠(yuǎn)程推送,讓你不是一個(gè)人在戰(zhàn)斗,隨時(shí)關(guān)注市場(chǎng)的變動(dòng)?!娟P(guān)鍵詞】愛炒股;手機(jī)應(yīng)用;軟件;iOS目錄1 引言41.1課題開發(fā)背景41.2軟件系統(tǒng)開發(fā)的現(xiàn)實(shí)意義42 系統(tǒng)開發(fā)環(huán)境52.1 開發(fā)工具52.2 開發(fā)語(yǔ)言52.3 數(shù)據(jù)庫(kù)工具52.4 第三方框架53 愛炒股軟件數(shù)
4、據(jù)接口介紹63.1 數(shù)據(jù)類型介紹63.2 數(shù)據(jù)接口介紹74 愛炒股軟件需求分析74.1 愛炒股軟件系統(tǒng)的可行性分析74.2 愛炒股軟件系統(tǒng)功能需求分析75 愛炒股軟件系統(tǒng)設(shè)計(jì)95.1 愛炒股軟件系統(tǒng)總體架構(gòu)設(shè)計(jì)95.2自選股模塊95.3大盤指數(shù)模塊105.4我的賬戶模塊125.5 模擬委托交易模塊135.6決策模塊135.7股市資訊模塊145.8設(shè)置模塊156 愛炒股軟件系統(tǒng)實(shí)現(xiàn)166.1 數(shù)據(jù)的抓取與解析16 6.1.1 數(shù)據(jù)的抓取16 6.1.2 數(shù)據(jù)解析176.2數(shù)據(jù)的請(qǐng)求及刷新246.2.1 數(shù)據(jù)的請(qǐng)求246.2.2 NSTimer定時(shí)刷新246.3數(shù)據(jù)庫(kù)266.3.1 數(shù)據(jù)庫(kù)表266
5、.3.2 數(shù)據(jù)庫(kù)的單例實(shí)現(xiàn)286.4數(shù)據(jù)的存儲(chǔ)286.4.1圖片的緩存處理286.4.2用戶信息的緩存286.4.3交易數(shù)據(jù)的存儲(chǔ)296.5 數(shù)據(jù)安全296.5.1 MD5加密實(shí)現(xiàn)296.5.2 指紋識(shí)別306.6 通知316.6.1 本地通知316.6.2 遠(yuǎn)程推送通知326.7模擬交易實(shí)現(xiàn)過(guò)程346.7.1 買入356.7.2 賣出376.7.3 撤單376.8資產(chǎn)組合風(fēng)險(xiǎn)計(jì)算386.8.1 相關(guān)參數(shù)386.8.2 實(shí)現(xiàn)算法396.8.3 關(guān)于該算法的實(shí)際不確定性417 系統(tǒng)測(cè)試437.1 兼容性測(cè)試437.2 性能測(cè)試437.3 穩(wěn)定性測(cè)試448 總結(jié)45參考文獻(xiàn)45附錄一:數(shù)據(jù)接口47
6、附錄二:圖標(biāo)50附錄三:版本控制511 引言1.1課題開發(fā)背景根據(jù)TIOBE最新發(fā)布2014年10月的編程語(yǔ)言排行榜中,可以看到C、Java、Objective-C依舊處于榜單前三。另外,Apple公司在9月份正式發(fā)布的Swift新的編程語(yǔ)言已悄然進(jìn)入排行前二十的榜單中。從這些數(shù)據(jù)中可以看到iOS系統(tǒng)逐漸在擴(kuò)大市場(chǎng)規(guī)模。圖1-1 TIOBE編程語(yǔ)言排行榜【數(shù)據(jù)來(lái)源:】不論是iPhone的用戶體驗(yàn),還是硬件方面,都是目前極受廣大消費(fèi)者的喜愛?;趇OS開發(fā)的手機(jī)應(yīng)用產(chǎn)品,在市場(chǎng)中得覆蓋率也是逐步在提高。1.2 愛炒股軟件系統(tǒng)框架設(shè)計(jì)開發(fā)的現(xiàn)實(shí)意義對(duì)于那些剛開始準(zhǔn)備步入股市的哪些人來(lái)說(shuō),愛炒股這款
7、軟件是極其合適不過(guò)的了。愛炒股手機(jī)軟件的設(shè)計(jì)是集股票信息、資訊、模擬炒股于一體的基于IOS操作系統(tǒng)的一款手機(jī)應(yīng)用軟件。當(dāng)下,模擬炒股功能大部分是出現(xiàn)在PC端,而在移動(dòng)端出現(xiàn)的是較少的。剛進(jìn)入股市,必然有種膽戰(zhàn)心驚,確實(shí)是這樣,股市每天千變?nèi)f化,所以,用愛炒股來(lái)先練練手也是不錯(cuò)的。除了模擬交易的功能外,愛炒股中得股票資訊也是非常豐富的,整合各大財(cái)經(jīng)門戶網(wǎng)站的信息,如同花順、和訊、騰訊股票等,同時(shí)也包含有各大機(jī)構(gòu)的調(diào)研報(bào)告供參考投資。1.3 愛炒股軟件系統(tǒng)設(shè)計(jì)預(yù)達(dá)到的目標(biāo)該系統(tǒng)沿著移動(dòng)端開發(fā)趨勢(shì),運(yùn)用Objective-C開發(fā)語(yǔ)言,實(shí)現(xiàn)基于iOS系統(tǒng)平臺(tái)的集股票資訊、投資參考、模擬炒股于一體的iP
8、hone手機(jī)應(yīng)用軟件。2 愛炒股軟件開發(fā)環(huán)境2.1 開發(fā)工具該應(yīng)用軟件使用的開發(fā)工具為Xcode 5.1。目前Xcode已更新到6.1版本,在該應(yīng)用中主要使用Xcode 5.1進(jìn)行開發(fā),在后續(xù)的更新和維護(hù)中采用的是Xcode 6.1。2.2 開發(fā)語(yǔ)言目前該軟件使用的開發(fā)語(yǔ)言為Objective-C。當(dāng)下市場(chǎng)上比較流行于iOS應(yīng)用開發(fā)的語(yǔ)言是OC和Swift,但是由于Swift還不是太穩(wěn)定,有很多語(yǔ)言規(guī)范還在不斷的完善中,所以iStock應(yīng)用主要采用Objective-C語(yǔ)言進(jìn)行編碼開發(fā)。2.3 數(shù)據(jù)抓包工具該軟件使用的抓包工具為paros。2.4 第三方框架該應(yīng)用中主要使用了以下幾種第三方框架
9、:表2-1 第三方框架框架說(shuō)明AFNetworking一個(gè)輕量級(jí)的網(wǎng)絡(luò)請(qǐng)求api類庫(kù)CorePlot開源矢量圖形庫(kù)GDataXMLNode解析xml數(shù)據(jù)的類庫(kù)MJRefresh數(shù)據(jù)刷新和加載SDWebImage提供圖片異步緩存的機(jī)制ShareSDK新浪微博登錄、分享XCMultiSortTableView多級(jí)表格XGSDK騰訊信鴿遠(yuǎn)程推送3 愛炒股軟件數(shù)據(jù)接口介紹3.1 數(shù)據(jù)類型介紹在愛炒股軟件中通過(guò)請(qǐng)求數(shù)據(jù)后返回的數(shù)據(jù)類型主要有字符串、xml和json三種。1、 字符串類型例如,通過(guò)GET請(qǐng)求后,返回的數(shù)據(jù)為以下結(jié)果:var hq_str_sh601688="華泰證券,13.93,
10、12.66,13.93,13.93,13.93,13.93,0.00,2877472,40083185,62863728,13.93,184800,13.92,51600,13.91,43900,13.90,15000,13.89,0,0.00,0,0.00,0,0.00,0,0.00,0,0.00,2014-11-26,15:03:05,00"對(duì)于字符串類型的數(shù)據(jù)來(lái)說(shuō),缺點(diǎn)之處在于:沒(méi)有明顯的數(shù)據(jù)結(jié)構(gòu),不方便解析。2、xml類型在獲取大部分的股票資訊類的接口時(shí),返回的都是xml類型的數(shù)據(jù):<item><seq>568654740</seq><
11、;title><!CDATA 傳中央重磅會(huì)議下月召開 將定調(diào)明年經(jīng)濟(jì)政策 ></title><ctime><!CDATA 2014-11-26 10:46:37 ></ctime><source><!CDATA 同花順頭條 ></source><url><!CDATA ></url><digest><!CDATA近日,有消息人士對(duì)媒體透露稱,中央經(jīng)濟(jì)工作會(huì)議將于12月9日起開始舉行。會(huì)議將圍繞"新常態(tài)"下的宏觀經(jīng)濟(jì)和深化
12、改革,提出明年的經(jīng)濟(jì)社會(huì)發(fā)展目標(biāo)和宏觀政策基調(diào)。當(dāng)前市場(chǎng)對(duì)經(jīng)濟(jì)增速下調(diào)的猜測(cè)日益增多,北京經(jīng)濟(jì)學(xué)者表示,7-7.2%為合理的增長(zhǎng)區(qū)間。></digest></item>3、json類型對(duì)于返回?cái)?shù)據(jù)類型如下的格式: "code" : 0, "data" : "01/averatio/0" : "bd_code" : "pt013300", "bd_name" : "保險(xiǎn)", "bd_zd" : "1
13、.926", "bd_zdf" : "6.93", "bd_zxj" : "29.706", "nzg_code" : "sh601336", "nzg_name" : "新華保險(xiǎn)", "nzg_zd" : "3.50", "nzg_zdf" : "9.99", "nzg_zxj" : "38.53",3.2
14、 數(shù)據(jù)接口介紹數(shù)據(jù)接口主要從新浪股票、騰訊股票、同花順、和訊股票接口獲取,數(shù)據(jù)類型有:string、json、xml三種。具體數(shù)據(jù)接口詳見附錄一。4 愛炒股軟件需求分析4.1 愛炒股軟件系統(tǒng)的可行性分析iStock主要面向的群體是想體驗(yàn)炒股并且毫無(wú)經(jīng)驗(yàn)的人群,該軟件正是為他們提供了他們的所需。模擬炒股,較為真實(shí)的模擬顯示股票交易動(dòng)作,模擬炒股中提供了買、賣、撤單三個(gè)模塊,進(jìn)行仿真模擬交易,讓用戶較為真實(shí)的感受股票交易的過(guò)程,以及學(xué)習(xí)和分析如何進(jìn)行擇股、投資組合等。4.2 愛炒股軟件系統(tǒng)功能需求分析根據(jù)系統(tǒng)功能劃分,iStock應(yīng)用詳細(xì)需求描述如下:1、自選股功能需求該功能為一個(gè)基本功能,上海證
15、券交易所和深圳證券交易所的兩市股票超過(guò)三千只,用戶可以根據(jù)自己的選擇偏好來(lái)添加關(guān)注的股票,查看自選股相關(guān)信息,同時(shí)根據(jù)關(guān)注度的不同調(diào)整對(duì)自選股的排序等。2、大盤指數(shù)功能需求大盤指數(shù)是對(duì)股票交易的一個(gè)參考,在選擇選擇股票交易時(shí),可以關(guān)注該股所在行業(yè)或者板塊的漲跌幅。同時(shí),對(duì)于偏好交易漲停股或者跌停股的用戶,可以隨時(shí)關(guān)注其中漲停榜和跌停榜股票,以及能夠在漲停分析中查看漲停原因及相關(guān)概念,以便用戶能夠在相關(guān)概念中發(fā)掘低價(jià)股,逢低買進(jìn)。3、我的賬戶功能需求在模擬交易中,我的賬戶占有很重要的作用。用戶所有的交易信息均能在我的賬戶中查看到,并且用戶能夠很清晰明了的看到當(dāng)前持倉(cāng)的盈虧。同時(shí),用戶能夠查看當(dāng)前
16、資產(chǎn)的構(gòu)成情況等。4、模擬交易功能需求模擬交易模塊為該應(yīng)用的主要模塊,用戶通過(guò)該模塊進(jìn)行模擬買賣交易,以及撤單。同時(shí),可以查看當(dāng)日交割單等信息。5、決策模塊需求該功能通過(guò)篩選各大機(jī)構(gòu)的分析報(bào)告,給予用戶更多投資信息,一邊用戶能夠清晰的了解當(dāng)前投資機(jī)構(gòu)的動(dòng)向,以及把握市場(chǎng)的熱門股。6、股市資訊功能需求該模塊有新聞和直播兩大類,用戶通過(guò)該模塊能夠獲得第一手股市訊息,實(shí)時(shí)關(guān)注股市動(dòng)態(tài),把握出手時(shí)機(jī)。7、設(shè)置功能需求用戶根據(jù)自身行為偏好、相關(guān)網(wǎng)絡(luò)環(huán)境的變化等進(jìn)行個(gè)性化設(shè)置,包行情刷新頻率、漲跌顏色、主題等等。5 愛炒股軟件系統(tǒng)設(shè)計(jì)愛炒股手機(jī)軟件的設(shè)計(jì)是集股票信息、資訊、模擬炒股于一體的基于IOS操作系
17、統(tǒng)的一款手機(jī)應(yīng)用軟件。5.1 愛炒股軟件系統(tǒng)總體架構(gòu)設(shè)計(jì)圖5-1 iStock系統(tǒng)功能架構(gòu)5.2自選股模塊自選股模塊,用戶可以自定義添加關(guān)注的股票,并查看該所的相關(guān)信息。(1)添加、刪除自選股;(2)按當(dāng)前價(jià)格、漲跌幅排序;(3)查看該股詳細(xì)信息,包括基本信息和詳細(xì)信息,基本信息有:股票當(dāng)前價(jià)格、漲跌幅度、漲跌幅百分比、今開、最高、最低、成交量、交易五檔;詳細(xì)信息有:今開、昨收、漲停、跌停、最高、最低、外盤、內(nèi)盤、換手率、市盈率、振幅、市凈率、成交量、成交額、流通值、總市值;(4)快速下單交易:快買、快賣、快撤;(5)論股:實(shí)時(shí)更新該股最新帖子數(shù)據(jù);(6)公告:企業(yè)相關(guān)公告及業(yè)績(jī)報(bào)告;(7)F
18、10:包含該股公司的基本資料,財(cái)務(wù)數(shù)據(jù),股東情況、財(cái)務(wù)評(píng)估;(8)分享功能:支持新浪微博、微信好友、微信朋友圈、短信等平臺(tái)分享;(9)查看該股日K、周K、月K線圖;(10)查看該股的個(gè)股新聞和該股所屬的行業(yè)新聞。 圖5-2 自選股界面 圖5-3 自選股詳情界面 圖5-4 K線圖 圖5-5個(gè)股新聞5.3大盤指數(shù)模塊大盤指數(shù)模塊,提供市場(chǎng)主要指數(shù)信息,以及熱門板塊等。(1)查看各個(gè)市場(chǎng)的主要指數(shù),包括:上證指數(shù)、深證指數(shù)、道瓊斯指數(shù)、納斯達(dá)克、恒生指數(shù)、日經(jīng)指數(shù)、臺(tái)灣加權(quán)、新加坡等主要指數(shù);(2)排行榜;應(yīng)用中每個(gè)榜單中對(duì)前十條數(shù)據(jù)進(jìn)行顯示,點(diǎn)擊更多按鈕可獲得更多排名;(3)漲停分析;位于漲停榜中
19、,分析漲停榜中股票漲停原因,以及分析該股所屬板塊或者相關(guān)概念;(4)熱門板塊;提供當(dāng)前走勢(shì)最好的幾大板塊,點(diǎn)擊更多板塊即可查看更多板塊相關(guān)指數(shù);(5)股指:歐美指數(shù)、亞太指數(shù)、大宗商品、外匯市場(chǎng)、人民幣牌價(jià)等。 圖5-6 滬深指數(shù)及排行榜 圖5-7 iStock系統(tǒng)功能架構(gòu) 圖5-8其他指數(shù) 圖5-9 漲停分析5.4我的賬戶模塊(1)我的賬戶:查看當(dāng)前資產(chǎn)狀況;(2)我的持倉(cāng):查看當(dāng)前購(gòu)買股票市值;(3)投資收益:查看賬戶盈虧情況,以及當(dāng)前購(gòu)買股票盈虧;(4)交易記錄:用戶可通過(guò)時(shí)間段來(lái)進(jìn)行查詢交易記錄。 圖5-10 個(gè)人中心 圖5-11 我的持倉(cāng) 圖5-12 投資盈虧 圖5-13 資金明細(xì)5
20、.5 模擬委托交易模塊模擬市場(chǎng)進(jìn)行交易,可以進(jìn)行買入、賣出、撤單,以及查看我的持倉(cāng)、當(dāng)日委托、當(dāng)日成交、查詢資金、資金明細(xì)、股東資料等;(1)買入:當(dāng)輸入購(gòu)買股票代碼時(shí),自動(dòng)填充該股所有信息,并結(jié)合模擬賬戶計(jì)算出可委托數(shù)量;(2)賣出:結(jié)合模擬賬戶,自動(dòng)填充可賣數(shù)量;(3)撤單:當(dāng)買進(jìn)股票時(shí),競(jìng)賣價(jià)大于委托價(jià)格時(shí),可撤單,即取消買進(jìn);當(dāng)賣出股票時(shí),競(jìng)買價(jià)小于委托價(jià)格時(shí),可撤單;(4)我的持倉(cāng):用戶可查看當(dāng)前賬戶買進(jìn)的所有股票的余額、可用余額、凍結(jié)數(shù)量、市價(jià)、成本、盈虧值、盈虧比例、市值、股票代碼、市場(chǎng)類別等信息;(5)當(dāng)日委托:查看當(dāng)日委托單;(6)當(dāng)日成交:查看當(dāng)日所有成交單;(7)查詢資金
21、:快捷查詢賬戶的幣種類別、余額、可用、凍結(jié)、股票、資產(chǎn)等信息;(8)資金明細(xì):查詢所有交易中資金的動(dòng)向;(9)登錄和退出:最初進(jìn)入該模擬交易時(shí),需進(jìn)行登錄,無(wú)賬號(hào)可注冊(cè)后登錄。 圖5-14 模擬交易界面 圖5-15 買入操作界面5.6決策模塊(1)個(gè)股報(bào)告:提供機(jī)構(gòu)對(duì)某些個(gè)股的評(píng)級(jí)分析和投資指導(dǎo)意見等;(2)行業(yè)報(bào)告:提供機(jī)構(gòu)對(duì)行業(yè)的評(píng)測(cè)分析報(bào)告;(3)機(jī)構(gòu)晨報(bào):投資機(jī)構(gòu)每日推薦個(gè)股;(4)策略報(bào)告:投資機(jī)構(gòu)投資策略建議。 圖5-16 個(gè)股報(bào)告 圖5-17 策略報(bào)告5.7股市資訊模塊該模塊通過(guò)以下6個(gè)小部分來(lái)呈現(xiàn)股市重要信息:(1)股市要聞(2)滾動(dòng)新聞(3)投資機(jī)會(huì)(4)自選股新聞(5)更多
22、(6)股市直播 圖5-18 股票資訊界面一 圖5-19 股票資訊界面二5.8設(shè)置模塊(1)行情刷新頻率設(shè)置:用戶可分別設(shè)置在2G/3G/4G和WiFi下數(shù)據(jù)刷新的頻率。設(shè)置可選項(xiàng):非WiFi網(wǎng)絡(luò)環(huán)境(不刷新、5秒、15秒、30秒和60秒)、WiFi網(wǎng)絡(luò)環(huán)境(不刷新、5秒),默認(rèn)均為不刷新;(2)顯示設(shè)置:用戶可根據(jù)自身喜好及習(xí)慣,進(jìn)行顯示設(shè)置,設(shè)置選項(xiàng)有:紅漲綠跌、綠漲紅跌。默認(rèn)為紅漲綠跌;(3)清楚緩存:緩存中的數(shù)據(jù)來(lái)源主要是走勢(shì)圖、K線圖及微博登陸;(4)切換主題:主題主要是對(duì)navigationBar的顏色設(shè)置,設(shè)置選項(xiàng)有:紅色、藍(lán)色,默認(rèn)為紅色;(5)夜間模式:提供用戶在夜間使用習(xí)慣,
23、降低亮度;(6)開啟指紋支付交易:該功能僅支持iPhone6、6Plus機(jī)型,當(dāng)開啟該功能后,在進(jìn)行交易時(shí),對(duì)交易信息的確定通過(guò)指紋來(lái)確定;(7)版本:版本號(hào)。 圖5-20 設(shè)置界面 圖5-21 行情刷新平率設(shè)置界面6 愛炒股軟件系統(tǒng)實(shí)現(xiàn)iStock應(yīng)用1.0.4版本已成功上線至蘋果AppStore應(yīng)用商店,通過(guò)搜索關(guān)鍵詞“iStock”、“模擬炒股”即可搜索到。關(guān)于該應(yīng)用的具體詳細(xì)上線信息及下載地址詳見附錄二。6.1 數(shù)據(jù)的抓取與解析6.1.1 數(shù)據(jù)的抓取應(yīng)用中的數(shù)據(jù)主要來(lái)源于同花順、新浪股票、和訊股票、自選股(騰訊)、雅虎等。這些數(shù)據(jù)來(lái)源所返回的數(shù)據(jù)類型、格式也截然不同。應(yīng)用中數(shù)據(jù)的抓包在
24、mac環(huán)境下所使用的工具是paros。(1)使移動(dòng)端和電腦在同一個(gè)網(wǎng)段;(2)在移動(dòng)端上設(shè)置HTTP代理,如圖6-1;(3)啟動(dòng)paros,設(shè)置Local Proxy中的Adress和Port,如圖6-2;(4)然后運(yùn)行移動(dòng)端上程序即可看到數(shù)據(jù)包。 圖6-1 數(shù)據(jù)抓取設(shè)置操作一 圖6-2 數(shù)據(jù)抓取設(shè)置操作二6.1.2 數(shù)據(jù)解析(1)返回類型為字符串格式以請(qǐng)求自選股模塊中的數(shù)據(jù)為例,該接口來(lái)自于新浪股票,請(qǐng)求格式為:例如:var hq_str_sz000001="平安銀行,13.88,13.83,13.91,13.97,13.75,13.91,13.92,26392797,365850
25、445,12000,13.91,87282,13.90,18800,13.89,77245,13.88,44377,13.87,94400,13.92,134301,13.93,248200,13.94,1051131,13.95,106360,13.96,2015-01-21,10:05:40,00"var hq_str_sh601688="華泰證券,21.99,21.21,22.04,22.11,21.58,22.04,22.06,84642718,1853499325,1100,22.04,30598,22.03,38600,22.02,81800,22.01,340
26、147,22.00,500,22.06,78954,22.07,209000,22.08,152106,22.09,145240,22.10,2015-01-21,10:05:37,00"有效數(shù)據(jù)為雙引號(hào)中得內(nèi)容,不同含義的數(shù)據(jù)用逗號(hào)隔開了。以平安銀行(000001)為例:表6-1 請(qǐng)求返回?cái)?shù)據(jù)示例序號(hào)內(nèi)容含義備注0平安銀行股票名稱113.88今日開盤價(jià)213.83昨日收盤價(jià)313.91當(dāng)前最新價(jià)413.97今日最高價(jià)513.75今日最低價(jià)613.91競(jìng)買價(jià)“買一”報(bào)價(jià)713.92競(jìng)賣價(jià)“賣一”報(bào)價(jià)826392797成交數(shù)量單位:股(使用時(shí)以手為單位)9365850445成交金額單位
27、:元(使用時(shí)以萬(wàn)元為單位)1012000買一申股單位:股(下同)1113.91買一報(bào)價(jià)1844377買五申股1913.87買五報(bào)價(jià)2094400賣一申股2113.92賣一報(bào)價(jià)28106360賣五申股2913.96賣五報(bào)價(jià)302015-01-21日期3110:05:40時(shí)間解析思路:(1)將返回的數(shù)據(jù)進(jìn)行編碼轉(zhuǎn)換,否則會(huì)出現(xiàn)亂碼的情況;(2)通過(guò)分號(hào)“;”判斷請(qǐng)求股票的個(gè)數(shù),并通過(guò)分號(hào)將其隔開;(3)去掉多余的返回?cái)?shù)據(jù)“var hq_str_”;(4)將等號(hào)“=”轉(zhuǎn)換成逗號(hào)“,”,并通過(guò)逗號(hào)再次將個(gè)股中得數(shù)據(jù)分割;(5)最后將分割號(hào)的數(shù)據(jù)逐個(gè)存到模型中。關(guān)鍵代碼如下:- (void)dataPa
28、raing:(NSMutableData *)data /編碼的轉(zhuǎn)換 NSStringEncoding enc =CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingGB_18030_2000); /創(chuàng)建文字對(duì)象,定義為網(wǎng)站的回復(fù)內(nèi)容 NSString *retStr = NSString alloc initWithData:data encoding:enc; /判斷自選股的個(gè)數(shù) NSString *regExStr = "" NSString *StringForSearch = retStr; NSE
29、rror *error = NULL; NSRegularExpression *regex = NSRegularExpression regularExpressionWithPattern:regExStr options:NSRegularExpressionCaseInsensitive error:&error; NSUInteger numberOfMatches = regex numberOfMatchesInString:StringForSearch options:0 range:NSMakeRange(0, StringForSearch length); N
30、SArray *retStrArray = retStr componentsSeparatedByString:"" for (int i = 0; i < numberOfMatches; i +) /定義回復(fù)的文字,把文字中的"="" withString:"," retStr = retStrArrayi stringByReplacingOccurrencesOfString:"=" withString:"," if (i = 0) retStr = retStr s
31、ubstringFromIndex:11; else retStr = retStr substringFromIndex:12; NSArray* stockData = NSArray arrayWithArray:retStr componentsSeparatedByString:"," /創(chuàng)建臨時(shí)的文字對(duì)象,定義為股票的數(shù)據(jù)內(nèi)容 NSString* stockNumberTemp = NSString stringWithFormat:"%",stockData objectAtIndex:0; NSString* stockNameTemp
32、= NSString stringWithFormat:"%",stockData objectAtIndex:1; NSString* stockCurrentTemp = NSString stringWithFormat:"%",stockData objectAtIndex:4; /計(jì)算股票的升幅數(shù)據(jù) double current = stockData objectAtIndex:4 doubleValue; double lastDay = stockData objectAtIndex:3 doubleValue; double diffe
33、rent = current - lastDay; double percent = different / lastDay * 100; ZMPStock *stock = ZMPStock alloc init; stock.stockName = stockNameTemp substringFromIndex:1; stock.stockCode = stockNumberTemp substringFromIndex:2; stock.stockPlate = stockNumberTemp substringToIndex:2; stock.stockCurrentPrice =
34、stockCurrentTemp; stock.stockIndex = stockPercentTemp; _dataArray addObject:stock; _tableView reloadData;(2)返回類型為json格式以請(qǐng)求大盤模塊中排行榜中得數(shù)據(jù)為例,例如:返回?cái)?shù)據(jù)如下: "code" : 0, "data" : "01/averatio/0" : "bd_code" : "pt013400", "bd_name" : "信托", &
35、quot;bd_zd" : "1.794", "bd_zdf" : "10.00", "bd_zxj" : "19.738", "nzg_code" : "sz000563", "nzg_name" : "陜國(guó)投", "nzg_zd" : "1.05", "nzg_zdf" : "10.02", "nzg_zxj&qu
36、ot; : "11.53" , , "ranka/chr/0" : "code" : "sz300364", "hsl" : "0.08", "name" : "N中文", "state" : "", "zd" : "3.00", "zdf" : "44.05", "zf" : "24.0
37、8", "zxj" : "9.81", "ranka/chr/1" : "code" : "sz300288", "hsl" : "2.76", "name" : "朗瑪信息", "state" : "", "zd" : "-10.03", "zdf" : "-5.20", "z
38、f" : "6.17", "zxj" : "182.97", "msg" : "ok"以上數(shù)據(jù)是通過(guò)Jsaon軟件調(diào)整布局后的結(jié)果。返回格式為json格式的數(shù)據(jù)類型都是非常規(guī)范的,所以解析起來(lái)并沒(méi)有字符串的解析那樣麻煩。關(guān)鍵代碼如下:- (void)connectionDidFinishLoading:(NSURLConnection *)connectionNSDictionary *dict = NSJSONSerialization JSONObjectWithData:_dat
39、a options:NSJSONReadingMutableContainers error:nil;/漲幅榜NSMutableArray *zfbArray = NSMutableArray array;for (int i = 0; i < dict"data""ranka/chr/0" count; i +) ZMPStock *stock = ZMPStock alloc init;stock.stockName = dict"data""ranka/chr/0"i"name"st
40、ock.stockCode = dict"data""ranka/chr/0"i"code"stock.stockIndex = dict"data""ranka/chr/0"i"zdf"stock.stockCurrentPrice = dict"data""ranka/chr/0"i"zxj"zfbArray addObject:stock;/跌幅榜NSMutableArray *dfbArray = NSMut
41、ableArray array;for (int i = 0; i < dict"data""ranka/chr/1" count; i +) ZMPStock *stock = ZMPStock alloc init;stock.stockName = dict"data""ranka/chr/1"i"name"stock.stockCode = dict"data""ranka/chr/1"i"code"stock.stock
42、Index = dict"data""ranka/chr/1"i"zdf"stock.stockCurrentPrice = dict"data""ranka/chr/1"i"zxj"dfbArray addObject:stock;/換手率榜NSMutableArray *hslbArray = NSMutableArray array;for (int i = 0; i < dict"data""ranka/trunrl/0"
43、 count; i +) ZMPStock *stock = ZMPStock alloc init;stock.stockName = dict"data""ranka/trunrl/0"i"name"stock.stockCode = dict"data""ranka/trunrl/0"i"code"/stock.stockIndex = dict"data""ranka/trunrl/0"i"hsl"stock
44、.stockCurrentPrice = dict"data""ranka/trunrl/0"i"zxj"stock.turnOverRate = dict"data""ranka/trunrl/0"i"hsl"hslbArray addObject:stock;/振幅榜NSMutableArray *zfBArray = NSMutableArray array;for (int i = 0; i < dict"data""ranka/d
45、tzf/0" count; i +) ZMPStock *stock = ZMPStock alloc init;stock.stockName = dict"data""ranka/dtzf/0"i"name"stock.stockCode = dict"data""ranka/dtzf/0"i"code"/stock.stockIndex = dict"data""ranka/dtzf/0"i"zf"s
46、tock.stockCurrentPrice = dict"data""ranka/dtzf/0"i"zxj"stock.amplitude = dict"data""ranka/dtzf/0"i"zf"zfBArray addObject:stock;_dataArray addObject:zfbArray;_dataArray addObject:dfbArray;_dataArray addObject:hslbArray;_dataArray addObject:z
47、fBArray;_tableView reloadData;(3)返回類型為xml格式在愛炒股軟件中,大多數(shù)的股訊信息都是xml格式,以股訊板塊中得要聞為例,請(qǐng)求連接為:<xmlColumn><columnName><!CDATA 同花順頭條 ></columnName><total>101</total><pages>6</pages><nextPage><!CDATA ></nextPage><currentPage>1</currentPa
48、ge><pageItems><item><seq>569968214</seq><title><!CDATA 李克強(qiáng):中國(guó)經(jīng)濟(jì)正向著形態(tài)更高級(jí)階段演進(jìn) ></title><ctime><!CDATA 2015-01-21 09:59:18 ></ctime><source><!CDATA 同花順頭條 ></source><url><!CDATA ></url><hot><!CDAT
49、A 0 ></hot><imgurl><!CDATA></imgurl><digest><!CDATA據(jù)新華社消息,國(guó)務(wù)院總理李克強(qiáng)當(dāng)?shù)貢r(shí)間20日晚在瑞士達(dá)沃斯會(huì)見世界經(jīng)濟(jì)論壇主席施瓦布。李克強(qiáng)表示,世界經(jīng)濟(jì)論壇在國(guó)際經(jīng)濟(jì)領(lǐng)域具有重要影響,每年冬季在達(dá)沃斯舉行的年會(huì)都引來(lái)世界聚焦。今年年會(huì)主題“全球新局勢(shì)”緊扣國(guó)際形勢(shì)發(fā)展,探討人類面臨的挑戰(zhàn)和可以把握的機(jī)遇,具有很強(qiáng)針對(duì)性。></digest></item><item></item></pageItems>
50、</xmlColumn>關(guān)鍵代碼如下:- (void)loadData:(NSString *)url /所有的請(qǐng)求都需要AFHTTPRequestOperationManager發(fā)送請(qǐng)求 AFHTTPRequestOperationManager *manager = AFHTTPRequestOperationManager manager; /返回?cái)?shù)據(jù)類型為二進(jìn)制 manager.responseSerializer = AFHTTPResponseSerializer serializer; /get請(qǐng)求 manager GET:url parameters:nil suc
51、cess:(AFHTTPRequestOperation *operation, id responseObject) self.header endRefreshing; self.footer endRefreshing; if (flag) _dataArray removeAllObjects; GDataXMLDocument *xml = GDataXMLDocument alloc initWithData:responseObject options:0 error:nil; NSArray *news = xml nodesForXPath:"/xmlColumn/
52、pageItems/item" error:nil; /NSLog("%",news); int i = 0; for (GDataXMLElement *element in news) NSArray *title = element nodesForXPath:"./title" error:nil; NSArray *time = element nodesForXPath:"./ctime" error:nil; NSArray *imgurl = element nodesForXPath:"./img
53、url" error:nil;NSArray *url = element nodesForXPath:"./url" error:nil; ZMPImportantNewsTableViewCellNews *news = ZMPImportantNewsTableViewCellNews alloc init; news.newsImageUrl = imgurl0 stringValue; news.newsTitle = title0 stringValue; news.newsTime = time0 stringValue; news.newsUrl = url0 stringValue; if (i > 0) _dataArray addObject:news; i +; _important
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030全球離網(wǎng)房車行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 2025-2030全球高脈沖能量皮秒激光器行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 月齡嬰兒情緒情感與社會(huì)性親子活動(dòng)設(shè)計(jì)創(chuàng)造性撫觸游戲講解
- 2025【合同范本】建筑工程設(shè)計(jì)協(xié)議書
- 蔬菜配送合作合同范本
- 分期付款合同模板集錦
- 會(huì)簽單合同模板
- 全新對(duì)講機(jī)服務(wù)合同下載
- 勞務(wù)出資合伙協(xié)議合同
- 個(gè)人租車租賃合同范本
- 《建設(shè)工程監(jiān)理》課件
- 2019版新人教版高中英語(yǔ)必修+選擇性必修共7冊(cè)詞匯表匯總(帶音標(biāo))
- 初中八年級(jí)音樂(lè)-勞動(dòng)號(hào)子《軍民大生產(chǎn)》
- 中層領(lǐng)導(dǎo)的高績(jī)效管理
- 小小銀行家-兒童銀行知識(shí)、理財(cái)知識(shí)培訓(xùn)
- 機(jī)械基礎(chǔ)知識(shí)競(jìng)賽題庫(kù)附答案(100題)
- 閱讀理解特訓(xùn)卷-英語(yǔ)四年級(jí)上冊(cè)譯林版三起含答案
- 國(guó)庫(kù)集中支付培訓(xùn)班資料-國(guó)庫(kù)集中支付制度及業(yè)務(wù)操作教學(xué)課件
- 屋面及防水工程施工(第二版)PPT完整全套教學(xué)課件
- 2023年上海青浦區(qū)區(qū)管企業(yè)統(tǒng)一招考聘用筆試題庫(kù)含答案解析
- 2023年高一物理期末考試卷(人教版)
評(píng)論
0/150
提交評(píng)論