作者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