- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我刚开始使用 AFNetworking,我正在尝试学习如何正确使用它。
我将 AFHTTPClient
子类化并创建了我自己的 MyAppClient
使用正确的基本 URL。
我正在使用 HTTP POST 请求和服务器响应与 xml 进行通信。
发送请求我做:
[[MyAppClient sharedClient] postPath:somePath parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject) {
// need to parse the data here...
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
//
NSLog(@"%@", [error localizedDescription]);
}];
AFHTTPClient
如果无论如何它正在使用异步操作,请使用操作 NSURLConnection
那不会阻塞主线程? NSData
并将其解析为 NSDictionary
,我想将它用于所有响应,我如何将它集成到 AFHTTPClient
中AFHTTPRequestOperation
以便已经解析响应? 最佳答案
Why does the AFHTTPClient use operation if anyway it's using an asynchronous NSURLConnection that doesn't block the main thread?
NSOperation
子类化并不需要一个可行的“HTTPRequestOperation”类。 .
AFHTTPRequestOperation
的设计很可能基于 Apple 工程师“Quinn”介绍的“原始”设计,他与他的类(class)一起发明了第一个“引用设计”
QHTTPOperation
并提供了许多宝贵的 sample - 这些 sample 仍然强烈推荐,值得一看。第一个设计子类
NSOperation
并封装了一个
NSURLConnection
目的。
NSOperation
的子类,网络请求看起来像一个“异步操作”。这意味着基本上,网络请求具有主要方法 start
和 cancel
并有一个完成处理程序来通知请求的最终结果。这个通用 API 对于异步网络操作很重要,因此它成为更通用的异步操作。 NSOperation
对象可以排队进入 NSOperationQueue
.这使得可以定义请求的顺序,特别是任何其他操作,以及同时事件操作(请求)的数量(如果您有很多)。 NSOperation
可以在其他操作之间定义或多或少复杂的依赖关系,这使您可以添加一些额外的“业务逻辑”层。有时,这对于解决更复杂的异步问题变得非常方便。 NSURLConnection
被封装在
NSOperation
的子类中这些都是上述优点。原因是永远不会像同步函数一样将它包装到
NSOperation
中。以便它可以在
NSOperationQueue
中执行.
NSOperation
的执行上下文上执行。 (例如,当添加到 NSOperationQueue 时)。然而,情况并非如此(在各种其他实现中可能有一些小异常(exception))。方法的执行上下文(主要是
NSULRConnection
的委托(delegate)方法)是一个专用的私有(private)线程,它将由
NSOperation
创建。子类。底层功能
NSURLConnection
无论如何也要在他们的私有(private)执行上下文(一个或多个线程)上执行。
start
方法将在操作的执行上下文中执行,该上下文快速返回。也就是说,如果有一个队列(比如调度队列或 NSOperationQueue)在其中调度了操作,则只有
start
方法在队列的执行上下文中执行。
NSOperation
的
isFinished
然而,状态将被推迟到网络请求确实完成的点。这种状态对其他
NSOperation
具有重要意义对象和
NSOperationQueue
:它向队列和其他操作发出此请求已完成的信号。
NSOperation
不是定义网络请求功能的执行上下文的工具,而是组织和设置与其他操作的关系的手段。
After I'm getting the data I need to parse it, should I now create a new operation to parse the data? It seems to me that it would be better to parse the data also in the operation and then return the parsed objects no?
NSOperation
取决于以下考虑:
cancel
) NSOperationQueue
其并发操作数为 1,并为其指定一个特定的“角色”和一个合适的名称,例如“DiskBoundQueue”。队列帮助您控制操作的创建和启动,并强制限制并行执行操作的数量,以便不会耗尽受限制的系统资源。然后,将“磁盘绑定(bind)”操作仅添加到专用的“DiskBoundQueue”。由于同时从不同的任务访问磁盘时,磁盘的操作不是最佳的,因此并发操作的数量设置为 1。也就是说,这种专用队列有助于优化系统资源的利用率。 NSOperation
提供一种建立这种依赖关系的方法。 NSOperationQueue
,对共享资源的访问是序列化的,因此是“线程安全的”。但是,如果并发是唯一的要求,我更愿意使用利用调度队列和块的更简单的方法。 NSOperation
可能会超大。您最好使用专用的调度队列,可能是一个串行队列,它也解决了共享资源的并发访问。
At the same subject I have a custom generic XMLParser class that gets a NSData and parse it to NSDictionary, and I would like to use it for all of the responses, how can I integrate it in the AFHTTPClient AFHTTPRequestOperation so that the response will be already parsed?
AFHTTPRequestOperation
的完成处理程序中启动 XML 解析器。或 AFClient 例如。
NSOperation
中。 ,然后使其他操作依赖于 XML 解析器操作。 (不过,对于此类依赖项,还有其他更简单的解决方案)
关于objective-c - AFHTTPClient - 解析响应对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11365764/
我的一位教授给了我们一些考试练习题,其中一个问题类似于下面(伪代码): a.setColor(blue); b.setColor(red); a = b; b.setColor(purple); b
我似乎经常使用这个测试 if( object && object !== "null" && object !== "undefined" ){ doSomething(); } 在对象上,我
C# Object/object 是值类型还是引用类型? 我检查过它们可以保留引用,但是这个引用不能用于更改对象。 using System; class MyClass { public s
我在通过 AJAX 发送 json 时遇到问题。 var data = [{"name": "Will", "surname": "Smith", "age": "40"},{"name": "Wil
当我尝试访问我的 View 中的对象 {{result}} 时(我从 Express js 服务器发送该对象),它只显示 [object][object]有谁知道如何获取 JSON 格式的值吗? 这是
我有不同类型的数据(可能是字符串、整数......)。这是一个简单的例子: public static void main(String[] args) { before("one"); }
嗨,我是 json 和 javascript 的新手。 我在这个网站找到了使用json数据作为表格的方法。 我很好奇为什么当我尝试使用 json 数据作为表时,我得到 [Object,Object]
已关闭。此问题需要 debugging details 。目前不接受答案。 编辑问题以包含 desired behavior, a specific problem or error, and the
我听别人说 null == object 比 object == null check 例如: void m1(Object obj ) { if(null == obj) // Is thi
Match 对象 提供了对正则表达式匹配的只读属性的访问。 说明 Match 对象只能通过 RegExp 对象的 Execute 方法来创建,该方法实际上返回了 Match 对象的集合。所有的
Class 对象 使用 Class 语句创建的对象。提供了对类的各种事件的访问。 说明 不允许显式地将一个变量声明为 Class 类型。在 VBScript 的上下文中,“类对象”一词指的是用
Folder 对象 提供对文件夹所有属性的访问。 说明 以下代码举例说明如何获得 Folder 对象并查看它的属性: Function ShowDateCreated(f
File 对象 提供对文件的所有属性的访问。 说明 以下代码举例说明如何获得一个 File 对象并查看它的属性: Function ShowDateCreated(fil
Drive 对象 提供对磁盘驱动器或网络共享的属性的访问。 说明 以下代码举例说明如何使用 Drive 对象访问驱动器的属性: Function ShowFreeSpac
FileSystemObject 对象 提供对计算机文件系统的访问。 说明 以下代码举例说明如何使用 FileSystemObject 对象返回一个 TextStream 对象,此对象可以被读
我是 javascript OOP 的新手,我认为这是一个相对基本的问题,但我无法通过搜索网络找到任何帮助。我是否遗漏了什么,或者我只是以错误的方式解决了这个问题? 这是我的示例代码: functio
我可以很容易地创造出很多不同的对象。例如像这样: var myObject = { myFunction: function () { return ""; } };
function Person(fname, lname) { this.fname = fname, this.lname = lname, this.getName = function()
任何人都可以向我解释为什么下面的代码给出 (object, Object) 吗? (console.log(dope) 给出了它应该的内容,但在 JSON.stringify 和 JSON.parse
我正在尝试完成散点图 exercise来自免费代码营。然而,我现在只自己学习了 d3 几个小时,在遵循 lynda.com 的教程后,我一直在尝试确定如何在工具提示中显示特定数据。 This code
我是一名优秀的程序员,十分优秀!