前端開發(fā)離不開和后臺交互纸泡,iOS亦然谁榜,后臺返回的數(shù)據(jù)很多時候是以json的格式返回。iOS開發(fā)一般會根據(jù)后臺返回的json數(shù)據(jù)創(chuàng)建數(shù)據(jù)模型捺疼,屬性和json返回的數(shù)據(jù)一一對應(yīng)。如果返回的數(shù)據(jù)很多永罚,那么可能會需要一個一個字段去賦值粘貼來做屬性的聲明帅涂,寫這個RequestForOCFile的目的正是簡化這個操作,根據(jù)請求的結(jié)果生產(chǎn).m和.h文件然后直接可以拿到項目使用尤蛮。可能有的人會說斯议,其實也沒簡化太多产捞,也就是復(fù)制粘貼幾句話的事,有的接口的結(jié)果甚至沒多少哼御,沒必要這么做坯临。我只想說,不“懶”的程序員恋昼,不是一個好的程序員看靠,就好比一個小的功能,可能這種人會覺得就直接在需要用的地方寫好能實現(xiàn)就行了液肌,不用考慮去封裝把這些代碼拆分成很多小的方法挟炬。如果你是這種人,你可以關(guān)掉這篇文章了嗦哆。
1.簡介
這是個使用Python寫的程序谤祖,IDE用的是JetBrains的PyCharm,GUI模塊用的是wxPython老速,基本上只是使用了wxPython和Requests兩個包的基礎(chǔ)功能粥喜,因為初學(xué),代碼寫的應(yīng)該不是很規(guī)范橘券,前后大概只花了1周左右额湘,后期會進(jìn)行優(yōu)化和改版,這里主要是介紹使用方法旁舰。
2.下載地址
3.使用方法
3.1 頭部權(quán)限文件填寫和預(yù)覽
類名锋华,項目名,作者和所有權(quán)均能自己修改箭窜,且點擊預(yù)覽或者請求成功都會保存下來供置,下次就是使用你之前填寫的,點擊預(yù)覽后作為iOS開發(fā)肯定一眼能看出這是需要寫入到m或者h(yuǎn)文件頭部的版權(quán)部分绽快,另外芥丧,類名會在寫入的時候當(dāng)做m和h的文件名紧阔,內(nèi)部import也會寫入import XXX.h(XXX為你填寫的類名),這里后面均按照默認(rèn)的設(shè)置講解续担,類名設(shè)置為默認(rèn)的JFModel沒有修改擅耽。
3.2請求參數(shù)填寫
![請求參數(shù)設(shè)置.png](http://upload-images.jianshu.io/upload_images/1221039-febb47003394a77b.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
默認(rèn)的請求地址為
http://ip.taobao.com/service/getIpInfo.php
參數(shù)默認(rèn)為空。上面的默認(rèn)請求地址只是個示例物遇,可以發(fā)送post請求乖仇,接收一個字段
ip
,值為任意ip地址,請求后會返回該ip的一些詳細(xì)信息询兴,例如國家乃沙,地區(qū)等。這里我們輸入左邊為ip
诗舰,右邊輸入一個1.1.2.3
這個ip地址警儒,然后點擊‘添加’,這里只是個示例眶根,你可以嘗試換一個接收多參數(shù)的請求地址蜀铲,添加多個參數(shù)去請求,每輸入完參數(shù)添加后属百,下面預(yù)覽會顯示當(dāng)前的參數(shù)預(yù)覽记劝,重新請求的話先清空(目前還沒優(yōu)化好,暫時只能一次性清空完)族扰,請求地址在請求成功后會保存厌丑,再次打開軟件,地址上為上次成功請求的地址渔呵。
3.3 選擇返回結(jié)果
可以看到蹄衷,使用{ip:1.1.2.3}這個參數(shù)請求后,返回的json出來了厘肮,一般像例子里的這種情況愧口,我們iOS里需要根據(jù)data里的json串手動寫屬性,這里我們點擊按鈕
選擇返回的子字段用來生成h和m文件
类茂,會彈出需要選擇的次級字段耍属,整個json最外層只有code和data兩個字段,我們要的是data里的字段巩检,選擇data點擊確定厚骗。
3.4 文件成功生成
確定后,會自動彈出一個文件夾兢哭,里面已經(jīng)包含了需要的m和h文件领舰,名字為之前給的類名JFModel,點開后會看到已經(jīng)按照iOS的規(guī)范以及返回的結(jié)果成功生成了文件,直接拿到項目中去用即可冲秽。這里可以看到舍咖,注釋為返回json里的各個鍵值對的value值,所以注釋修改起來也很方便锉桑,把第一個屬性中國
改為國家
即可排霉,其它類似。
如果在3.3中選擇的是第二個按鈕直接使用返回的json生成h和m文件
民轴,則會直接生成兩個屬性的h和m文件攻柠,屬性分別叫code
和data
,因為有的地址請求確實第一層就已經(jīng)返回了各個需要的數(shù)據(jù)了,這樣選擇該按鈕直接生成即可后裸。
4.結(jié)束語
目前功能上來說還不是很全瑰钮,比如智能檢測到結(jié)果的第二級字段,主要還是因為Python才接觸不久微驶,但是語法相對還是比較簡單的浪谴。
腳本能給開發(fā)帶來很多便利,個人覺得作為一個程序員祈搜,會一門腳本語言還是有必要的,很多操作能簡化士八,且能讓你對計算機(jī)的命令進(jìn)行深入了解容燕。比如iOS開發(fā),我相信很多人甚至不知道xcode中你的任何操作婚度,包括build蘸秘,run等等,其實內(nèi)部只是運行了一下xcode的命令行xcodebuild
或者修改了某個工程文件而已蝗茁,也即是說使用腳本也可以直接讓一個項目跑起來醋虏,或者打包。如果接觸過腳本打包的同學(xué)哮翘,應(yīng)該是會有所了解颈嚼。當(dāng)然,覺得這些東西沒必要的同學(xué)饭寺,你可以忽略阻课,安心當(dāng)個碼農(nóng)把功能實現(xiàn)即可。