所以我最近几天一直在与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
我面临的问题:
例如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
捕获响应?
当我输入这个时,我正在考虑......制作两个类,一个是响应,一个是请求?我想我几乎都处于我需要的解决方案 - 只需要清除路径。
答案 0 :(得分:2)
不再这样做了。
再没有子类
您应该创建'自己的类'并使用AFHTTPOperationManager
那就是它。