有兩種方式
第一&更好的辦法是實現connectionDidFinishLoading:
NSURLConnectionDataDelegate
委託時,連接已經完成成功加載,這將觸發。
第二種方式是手動處理它,如下所示。
你可以做以下的事情在網絡服務器端,
第一步:首先開始發送原始數據之前發送以下信息。
a.Number of Chunks.[totalSize/1024] (mandatory).
b.TotalSize(not mandatory).
你可以做以下的事情在客戶並肩,
第一步:存儲上述信息。
第二步:寫下面的代碼
@property (nonatomic,assign) int chunkNumber;
@property (nonatomic,strong) NSData *receivedData;
Self.chunkNumber = 1;
-(void)connection:(NSURLConnection *)connection didReceiveData:(NSData)myata{
if(self.chunkNumber != Number of Chunks)
{
if(!self.receivedData)
{
//allocate and initialize self.receivedData
}
[self.receivedData appendData:myData];
}
else
{
//completed . do whatever with self.receivedData.
//if you want to validate, just check the self.receivedData size with TotalSize
self.chunkNumber = 1;
}
}
多大JSON包?你擔心連接會丟失部分JSON,還是有其他原因? – bgoers 2013-03-27 18:57:32
服務器一次只發送1024個字節的數據。我擁有的數據將很容易爲每個請求10 kb。 – lehn0058 2013-03-27 19:00:29
10KB真的很小。但是如下所述,有一個委託方法告訴你數據何時完成發送。 – bgoers 2013-03-27 19:03:50