AFNetworking 2.0 - 是否使用子类?

时间:2013-11-01 06:04:14

标签: ios objective-c afnetworking-2

所以我最近几天一直在与AFNetworking 2.0合作,事情进展顺利 - 我开始理解图书馆的次数越多。

昨天我意识到我正在构建一个类来处理我的应用程序的Web服务 - GET / POST /DELETE等。

现在,AFNetworking已经处理了这些事情,没有理由建立我自己的方法。然而,这是我被困住的部分。

以下是我想要做的简短示例:

DataStore类课程中,我想做类似的事情:

RCBaseDataStore.h

-(void)handelWebService: (int) webServiceID 
{

    Switch (webServiceID) 

    case: GET_STORE_ITEMS_WSID 
    {
       BBWebService *newService = [[BBWebService alloc]initWithURL:URL 
                                                       RequestType:@"GET" 
                                                       PostDataValuesAndKeys:nil 
                                                       RequestProperties:nil 
                                                       UrlParameters:urlParams];
    } 

} 

在上面 - 我使用了Web服务ID的索引 - 这允许使用switch语句 - 但是有30或40个Web服务 - 所以这个方法会增长很多。

我现在需要做的是让BBWebService对该URL进行操作 - 然后构建URL并将参数放在一起 - 然后我将其交给运行BBWebService内的另一个方法GET / POST requests

我面临的问题:

  1. AFNetworking完成所有这些(构建URL并运行请求) - 如何使用它使用的方法 - 无需重新定义它们,而只是添加它们?
  2. 例如GET / POST requests - 我需要将responseObject存储在我可以执行的NSData object中。但是我不想在RCBaseDataStore中使用这个逻辑 - 我希望它在BBWebService中 - 但是如果没有覆盖AfNetworking超类中的方法,我会找到原始方法。

    我查看了AFNetworking库中的AFRequestSteralization.h文件,它的协议如下:

     (NSURLRequest *)requestBySerializingRequest:(NSURLRequest *)request
                                   withParameters:(NSDictionary *)parameters
                                            error:(NSError *__autoreleasing *)error;
    

    在说明中说:

      

    返回将指定参数编码到副本中的请求   原始请求。

         

    @param request原始请求。 @param参数   要编码的参数。 @param error同时发生的错误   尝试编码请求参数。

         

    @return序列化请求。

    现在我是否会让BBWebService符合这个协议,然后在RCBaseData Store中有一个执行请求的方法,对GET / POST有不同的做法?

    第一个参数是我不确定的 - 如何为NSURLRequest创建GET /POST request对象?

    我提出请求后 - 如何让BBWebService 捕获响应?

    当我输入这个时,我正在考虑......制作两个类,一个是响应,一个是请求?我想我几乎都处于我需要的解决方案 - 只需要清除路径。

1 个答案:

答案 0 :(得分:2)

不再这样做了。

再没有子类

您应该创建'自己的类'并使用AFHTTPOperationManager

那就是它。