使用MKNetworkKit时有一个MKNetworkEngine对象

时间:2012-07-15 14:40:12

标签: ios mknetworkkit

我刚刚切换到使用MKNetworkKit,我很困惑我是否应该在App启动时创建一个MKNetworkEngine对象,并在每次我想要网络连接时使用它,或者每次我应该创建一个新对象? / p>

如果我需要创建一个并在App的整个生命周期中使用它,我会假设MKNetworkKit会创建一个单例,但它似乎并不是(我不能看到)。

另一方面,每次我想做一个简单的GET请求时,分配/初始化MKNetworkEngine似乎很麻烦。

似乎有些不对劲,所以我想知道我是否正确使用它。

2 个答案:

答案 0 :(得分:1)

您为要打算调用的每个Web服务创建一个引擎,并将其作为应用程序委托中的强属性保留 (facebook =一个引擎/ twitter =一个引擎/ flickr =一个引擎)

创作者Mugunth Kuma写道:

  

MKNetworkEngine是一个伪单例类,用于管理应用程序中的网络队列。对于简单的请求,它是伪单例,您应该直接使用MKNetworkEngine方法。对于更强大的自定义,您应该将其子类化。每个MKNetworkEngine子类都有自己的Reachability对象,通知它有服务器可访问性通知。您应该考虑为您使用的每个唯一REST服务器创建MKNetworkEngine的子类。从某种意义上讲,它是伪单例,它的任何子类中的每一个请求都经过一个且只有一个队列。

see this blog article

答案 1 :(得分:1)

Etienne678是对的。您应该为每个Web服务器创建一个引擎,并在引擎上设置全局标头(如gzip)和该服务器所需的其他标头。

当您对操作进行排队时,会自动追加这些标题。