看板 MacDev 關於我們 聯絡資訊
其實整個重點就是,你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
ybite:推這篇 07/12 22:40
tentenlee:我有設delegate呀 你說的函數 只有requestDidFinished 07/13 10:33
tentenlee:我沒用到 我也查不到.... 是有用connectionDidFinishLoa 07/13 10:34
tentenlee:ding去放資料 然後我是有做另外一個函數去GET值 07/13 10:35
Blueshiva:請記得"發送request"和"接收request"是兩回事,不要試圖 07/13 14:37
Blueshiva:在"發送request"的method裡面去處理request回來的data, 07/13 14:37
Blueshiva:他根本就還不存在。所以,"發送request"的method做的事 07/13 14:38
Blueshiva:非常,非常的簡單,就是建立request,發送,that's all 07/13 14:38
Blueshiva:不再做任何事情,也不應該再做任何事情。剩下所有的事情 07/13 14:39
Blueshiva:都是接收到"request結束"的這個method去做,或者完整一 07/13 14:39
Blueshiva:些,有另外移個request失敗的method可以處理相關的事 07/13 14:40
tentenlee:你說的結束是指delegate的結束那個method嗎? 07/13 14:50
Blueshiva:如果你不知道delegate是甚麼,那麼簡單說,你應該要準備 07/13 14:59
Blueshiva:兩個物件,class A是"發出request"的那個,你會在他的某 07/13 15:00
Blueshiva:.....算了,我用回的 07/13 15:00
Blueshiva:不過等我下班再回....XD 07/13 15:02
reon:其實你那隻處理connection delegate不一定要設成self 07/14 11:20
reon:你可以把目前主程式的self設給connection 那知做為delegate 07/14 11:22
reon:這樣delegate 就不必要implement在connection那隻程式,可在 07/14 11:24
reon:原主程式 07/14 11:25
chd75131:補充一下原po想要的發出request下一行就可以處理response 07/15 01:45
chd75131:的方式是同步request 是會鎖死main thread的 一般在處理 07/15 01:46
chd75131:網路這一塊不太建議這樣做 因為看起來跟當機沒什麼兩樣.. 07/15 01:47