我刚刚切换到使用 MKNetworkKit 并且我很困惑是否应该在应用程序启动时创建一个 MKNetworkEngine 对象并在我想要网络连接时使用它,或者我是否应该每次都创建一个新对象?
如果我只需要创建一个并在应用程序的整个生命周期中使用它,我会假设 MKNetworkKit 会创建一个单例,但它似乎没有(不是我能看到的)。
另一方面,每次我想做一个简单的 GET 请求时,分配/初始化 MKNetworkEngine 似乎很麻烦。
似乎有些不对劲,所以我想知道我是否正确使用它。
我刚刚切换到使用 MKNetworkKit 并且我很困惑是否应该在应用程序启动时创建一个 MKNetworkEngine 对象并在我想要网络连接时使用它,或者我是否应该每次都创建一个新对象?
如果我只需要创建一个并在应用程序的整个生命周期中使用它,我会假设 MKNetworkKit 会创建一个单例,但它似乎没有(不是我能看到的)。
另一方面,每次我想做一个简单的 GET 请求时,分配/初始化 MKNetworkEngine 似乎很麻烦。
似乎有些不对劲,所以我想知道我是否正确使用它。
您为您打算调用的每个 Web 服务创建一个引擎,并将其作为一个强大的属性保存在应用程序委托中
(facebook = 一个引擎 / twitter = 一个引擎 / flickr = 一个引擎)
创作者 Mugunth Kuma 写道:
MKNetworkEngine 是一个伪单例类,用于管理应用程序中的网络队列。它是一个伪单例,从某种意义上说,对于简单的请求,您应该直接使用 MKNetworkEngine 方法。对于更强大的自定义,您应该对其进行子类化。每个 MKNetworkEngine 子类都有自己的 Reachability 对象,用于通知它服务器可达性通知。您应该考虑为您使用的每个唯一 REST 服务器创建 MKNetworkEngine 的子类。从某种意义上说,它是伪单例,它的任何子类中的每个请求都通过一个且只有一个队列。
Etienne678 是对的。您应该为每个网络服务器创建一个引擎,并在引擎上设置该服务器所需的全局标头(如 gzip)和其他标头。
当您对操作进行排队时,这些标头会自动附加到引擎。