- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想执行 2 个请求并在最后发送通知。我检查操作顺序的代码:
AFHTTPRequestOperation *operation1 = ...;
AFHTTPRequestOperation *operation2 = ...;
[operation1 setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {
NSLog(@"asdf");
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
}];
[operation2 setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {
NSLog(@"asdf");
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
}];
NSBlockOperation *operation3 = [NSBlockOperation blockOperationWithBlock:^{
NSLog(@"123");
}];
NSArray *operationArray = @[operation1, operation2, operation3];
for (int i = 1; i < operationArray.count; i++) {
NSOperation *op = operationArray[i];
[op addDependency:operationArray[i - 1]];
}
[queue addOperations:ops waitUntilFinished:NO];
我期待以下控制台日志:
asdf
asdf
123
但实际结果是:
asdf
123
asdf
为什么?
最佳答案
来自文档
The exact execution context for your completion block is not guaranteed but is typically a secondary thread. Therefore, you should not use this block to do any work that requires a very specific execution context. Instead, you should shunt that work to your application’s main thread or to the specific thread that is capable of doing it. For example, if you have a custom thread for coordinating the completion of the operation, you could use the completion block to ping that thread.
即不要依赖于在一个操作完成之后和另一个操作开始之前调用完成 block ,因为不能保证会那样发生。
关于ios - 结合 AFHTTPRequestOperation 和 NSBlockOperation (iOS)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26895105/
我正在 swift 中使用 AFNetworking,并且在将以下代码转换为 swift 时遇到问题 objective-c [client GET:url parameters:nil succes
使用发送几个post请求 - (AFHTTPRequestOperation *)POST:(NSString *)URLString parameters
如何中断执行 AFHTTPRequestOperation?如果 HTTP 请求已经开始但尚未完成,这是否可能? 最佳答案 中断是什么意思?如果您想取消操作,则只需调用 -cancel 即可。请参阅:
我搜索了很多并看到了一些答案,但我仍然不确定如何解决它:我只想在操作完成时执行一些 void 函数。 我的代码: NSMutableURLRequest *request = [NSMutableUR
我有这样一种情况,我需要向服务器发出多个请求,而后续请求将取决于先前的请求 1) request 1 2) process data 3) request 2 based on data in ste
我的应用程序中有一些网络服务调用。这是我如何调用它们的示例 +(void) login:(NSDictionary *) loginParams { AppDelegate *appDeleg
有没有办法取消 AFHTTPRequestOperation?例如,我用它来下载 PLIST。所以我打算有一个按钮来取消下载或任务。有办法吗? 更新: operationQueue = [NSOper
伙计,被这个难住了。尝试使用 AFNetworking 下载文件我能做的最好的事情就是在 downloadProgressBlock 中捕获进度字节。我已经尝试了许多不同的 AFNetworking
我使用的是最新的 AFNetworking V2.0。如果可达性可用,我已经设置了一系列要在 AFHTTPRequestOperationManager 的操作队列上运行的操作。我在 appDeleg
我在 swift 中使用AFHTTPRequestOperation,如下所示: let operation : AFHTTPRequestOperation? = manager.GET(reque
我是 objective-c 的完全菜鸟,所以请原谅这个愚蠢的问题。 我已经能够按照 AFNetworking 2.0 的指南使用 AFHTTPRequestOperationManager 发送帖子
我有一个用于测试 AFNetworking 的应用程序API。它从服务器下载文档并将它们放置在应用程序的沙箱中。用户可以开始下载、暂停/恢复下载和取消下载。按预期启动、暂停和恢复所有工作。然而,取消做
使用 iOS 有一段时间了,但现在我在一个复杂的客户端-服务器应用程序中工作,这需要我: 向服务器发送请求(使用 AFHttpRequestOperation)响应是一个区间或一个字典 如果我得到一个
我正在连接到我自己的 Web 服务,我认为它正在发回一个 gzipped 响应,该响应由 AF Networking 库在后台解压缩。当存在接受编码 gzip header 时,我已验证我的服务器正在
所以我试图在线访问一个 json 文件,当我使用 AFHTTPRequestOperation 方法运行完成 block 时,我可以获取 JSON 文件的内容。但是当我尝试在完成 block 之外使用
我正在尝试制作一个使用 AFHTTPClient 与 API 通信的 iOS 应用程序。第一步是对用户进行身份验证,为此,我使用以下代码: -(void)authorize { NSURLRe
我希望函数在 AFHTTPRequestOperation 完成之前不返回,但我不知道该怎么做,在此先感谢。 -(BOOL)download { BOOL ret = TRUE; AFHTTPRequ
我刚刚更新到 AFNetworking 2.0,我正在重写我的代码以下载数据并将其插入到核心数据中。 我下载 JSON 数据文件(从 10-200mb 文件不等),将它们写入磁盘,然后将它们传递给后台
我发现自己在整个代码中使用 AFHTTPRequestOperationManager 重复了很多代码,所以我在考虑将它子类化,这样我就可以将它设置为一个单例,然后将所有代码放在子类,而不是通过我的项
我在使用 AFNetworking 时遇到问题。我在我的代码中这样写: AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperation
我是一名优秀的程序员,十分优秀!