如何拥有MKNetworkKit的多个子类?

时间:2012-08-13 02:49:11

标签: objective-c rest ios5 subclassing mknetworkkit

我目前正在使用MKNetworkKit来缓存来自安静服务器的多个图像的下载。我有另一个宁静的服务我ping以获得有关图像的补充信息。无论我首先运行哪台服务器,但在ping第二台服务器时,我都会收到以下错误:

  

[操作无法完成。 (NSURLErrorDomain错误404.)]   2012-08-12 19:51:12.340 [51853:11603]

     

错误:错误域= NSURLErrorDomain代码= 404“操作无法完成。(NSURLErrorDomain错误404.)”UserInfo = 0x73c5490 {Server = Apache-Coyote / 1.1,Content-Length = 47,Content-Type = text / html; charset = ISO-8859-1,Connection = keep-alive,Date = Sun,2012年8月12日23:51:11 GMT}   2012-08-12 19:51:12.341 [MKNetworkOperation operationFailedWithError:] [Line 1280]状态:0

MKNetworkKit正在ping第一台服务器,试图从第二台服务器的URL获取数据。我想我可能需要创建另一个可达性对象?知道我做错了什么吗?或者我可以在哪里找到一个具有多个子类的项目的示例实现?

修改的 我通过以下方式实现两个引擎:

@implementation FirstEngine

FirstEngine* _sharedEngine;

+(FirstEngine*)sharedEngine
{
    if(_sharedEngine==nil)
    {
        _sharedEngine = [[FirstEngine alloc] initWithHostName:@"***.**.**.**" customHeaderFields:nil];            
    }
    return _sharedEngine;
}

以这种方式调用它们:

$[[FirstEngine sharedEngine] bodyForPath:url verb:verb body:params onCompletion:^(NSDictionary* body)
{}....

$[[SecondEngine sharedEngine] bodyForPath:url verb:verb body:params onCompletion:^(NSDictionary* body)
{}....

1 个答案:

答案 0 :(得分:1)

您应该在AppDelegate中为与您交谈的“每个”服务器创建一个MKNetworkEngine对象。

self.imageCacheEngine = [[MKNetworkEngine alloc] initWithHostName:@"images.myserver.com"];

self.apiEngine =  [[MKNetworkEngine alloc] initWithHostName:@"api.myserver.com"];

将图像请求排入imageCacheEngine并向apiEngine发送api请求。