作者Blueshiva (龍野南雲)
看板MacDev
標題Re: [問題] https NSURLConnection 的問題
時間Thu Jul 12 18:53:25 2012
其實整個重點就是,你Code放錯地方了...
標準的做法是:
methodA:
建立request,設定request的delegate
發出request,然後?然後就結束了...就不管了...就 } 了...
另外找個地方放request結束之後會呼叫的delegate method,有好幾個
什麼 didReceiveData、requestDidFinished 之類的,請自己查一下文件 :p
然後在這個delegate的didReceiveData裡面,把傳回來的東西自己存好
在requestDidFinished裡面做你要做的處理
你可以把發出request method和接收的method寫在同一個object裡面,只要把
delegate設為self就可以,但是千萬,千萬,千萬不要寫在"同一個"method裡
面...
--
Luna quieres ser madre
y no encuentras querer
que te haga mujer
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 111.248.84.187
1F:→ ybite:推這篇 07/12 22:40
2F:推 tentenlee:我有設delegate呀 你說的函數 只有requestDidFinished 07/13 10:33
3F:→ tentenlee:我沒用到 我也查不到.... 是有用connectionDidFinishLoa 07/13 10:34
4F:→ tentenlee:ding去放資料 然後我是有做另外一個函數去GET值 07/13 10:35
5F:→ Blueshiva:請記得"發送request"和"接收request"是兩回事,不要試圖 07/13 14:37
6F:→ Blueshiva:在"發送request"的method裡面去處理request回來的data, 07/13 14:37
7F:→ Blueshiva:他根本就還不存在。所以,"發送request"的method做的事 07/13 14:38
8F:→ Blueshiva:非常,非常的簡單,就是建立request,發送,that's all 07/13 14:38
9F:→ Blueshiva:不再做任何事情,也不應該再做任何事情。剩下所有的事情 07/13 14:39
10F:→ Blueshiva:都是接收到"request結束"的這個method去做,或者完整一 07/13 14:39
11F:→ Blueshiva:些,有另外移個request失敗的method可以處理相關的事 07/13 14:40
12F:推 tentenlee:你說的結束是指delegate的結束那個method嗎? 07/13 14:50
13F:→ Blueshiva:如果你不知道delegate是甚麼,那麼簡單說,你應該要準備 07/13 14:59
14F:→ Blueshiva:兩個物件,class A是"發出request"的那個,你會在他的某 07/13 15:00
15F:→ Blueshiva:.....算了,我用回的 07/13 15:00
16F:→ Blueshiva:不過等我下班再回....XD 07/13 15:02
17F:→ reon:其實你那隻處理connection delegate不一定要設成self 07/14 11:20
18F:→ reon:你可以把目前主程式的self設給connection 那知做為delegate 07/14 11:22
19F:→ reon:這樣delegate 就不必要implement在connection那隻程式,可在 07/14 11:24
20F:→ reon:原主程式 07/14 11:25
21F:→ chd75131:補充一下原po想要的發出request下一行就可以處理response 07/15 01:45
22F:→ chd75131:的方式是同步request 是會鎖死main thread的 一般在處理 07/15 01:46
23F:→ chd75131:網路這一塊不太建議這樣做 因為看起來跟當機沒什麼兩樣.. 07/15 01:47