Так что я работаю с AFNetworking 2.0
в течение последних нескольких дней, и все идет хорошо - начиная понимать библиотеку, чем я ее использую.AFNetworking 2.0 - использование подкласса или нет?
Вчера я понял, что создание класса для обработки веб-служб моего приложения - 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];
}
}
В приведенном выше примере я использовал индекс идентификаторов веб-сервисов - это позволяет использовать оператор switch, но есть 30 или 40 веб-сервисов, поэтому этот метод будет расти .. много.
Что теперь мне нужно сделать, это получить BBWebService
действовать по этому URL - который затем строит URL и помещает параметры вместе - я затем передать, что к другому методу внутри BBWebService
, который запускает GET/POST requests
проблемы, с которыми я столкнулся:
- AFNetworking делает все это (создание URL-адреса и выполнение запроса). Как использовать методы, которые он использует, - без переопределения их, а просто добавления к ним?
Например GET/POST requests
- Мне нужно хранить responseObject
в NSData object
, который я могу сделать. Но я не хочу эту логики в RCBaseDataStore
- Я хочу это в BBWebService
. - но без переопределения методов в AfNetworking
супер класса, который я хотел бы найти оригинальные методы в
Я посмотрел в AFRequestSteralization.h
файле в библиотеке AFNetworking и имеет протокол, как:
(NSURLRequest *)requestBySerializingRequest:(NSURLRequest *)request
withParameters:(NSDictionary *)parameters
error:(NSError *__autoreleasing *)error;
В примечаниях он говорит, что это:
Возвращает запрос с заданными параметрами, закодированных в копию первоначального запроса.
@param запрос Первоначальный запрос. Параметры @param Параметры, подлежащие кодированию . Ошибка @param Ошибка, произошедшая в то время как пытается кодировать параметры запроса.
@return Сериализованный запрос.
Теперь я должен сделать BBWebService соответствовать этому протоколу, а затем в RCBaseData магазине есть способ делать запрос, сделать по-другому - для GET/POST
?
Первый аргумент - это то, о чем я не уверен - как создать объект NSURLRequest
для GET /POST request
?
Как только я сделаю запрос - как мне получить BBWebService
в Захват ответ?
Как я набираю это, я думаю ... сделайте два класса, один ответ и один запрос? Я думаю, что я почти нахожусь в решении, в котором я должен быть, - просто нужно очистить путь.
Я бы хотел использовать AFHTTPSessionManager для всех сетевых приложений, так как приложение будет только iOS7. (Может использоваться NSURLSession). Проблема, если в другом классе - как я могу обнаружить запросы POST/GET, не записывая массивный оператор IF в методе «Свой класс»? - Будет ли вместо этого использоваться протоколы AFNetworking? Здесь http://cocoadocs.org/docsets/AFNetworking/2.0.0/Protocols/AFURLResponseSerialization.html и этот: http://cocoadocs.org/docsets/AFNetworking/2.0.0/Protocols/AFURLRequestSerialization.html Спасибо за Помогите! – Tander