因此,我正在使用AFNetworking 2.0重写iOS 7的应用程序,我遇到了一次发送一批请求并跟踪其进度的问题.在旧的AFNetworking中有enqueueBatchOfHTTPRequestOperations:progressBlock:completionBlock:方法AFHTTPClient,这显然是重构的,我对如何排队多个请求有点困惑.
我创建了一个子类,AFHTTPSessionManager我正在使用POST:...和GET:...方法与服务器进行通信.但是我无法在代码和/或文档中找到任何可以同时将多个请求排入队列的内容AFHTTPClient.
我唯一能找到的是未记录的batchOfRequestOperations:progressBlock:completionBlock:方法AFURLConnectionOperation,但看起来像iOS 6的方式.
显然,我在新NSURLSession概念中遗漏了一些东西,我应该用它来批量请求或查看新的AFNetworking功能.希望有人能在这里帮助我走上正轨!
tl; dr:如何用我的AFHTTPSessionManager子类发送一批请求?
我正在尝试使用 GCDAsyncSocket 向我的 iDevice 客户端发送一些图像文件(近 100MB)。
我想同步向客户端发送数据包。我的意思是在向第一个客户端发送 100MB 数据后,迭代到下一个客户端。但是由于 GCDAsyncSocket 的异步性质,我不知道如何序列化这些数据包发送。
我不能使用信号量,因为在发送图像之前,我会与每个客户端协商以了解我应该发送哪些图像,然后尝试发送这些图像。我找不到一种巧妙的方法来等待和向信号量发出信号。
- (void)sendImagesToTheClients:clients
{
...
//negotiating with client to know which images should sent
...
for(Client* client in clients)
{
packet = [packet addImages: images];
[self sendPacket:packet toClient:client];
}
}
- (void)sendPacket:packet toClient:client
{
// Initialize Buffer
NSMutableData *buffer = [[NSMutableData alloc] init];
NSData *bufferData = [NSKeyedArchiver archivedDataWithRootObject:packet];
uint64_t headerLength = [bufferData length];
[buffer appendBytes:&headerLength length:sizeof(uint64_t)];
[buffer appendBytes:[bufferData bytes] length:[bufferData length]];
// Write Buffer
[client.socket …Run Code Online (Sandbox Code Playgroud) asynchronous objective-c synchronous grand-central-dispatch gcdasyncsocket