Ответ 1
В версии 1.3.0 у вас есть доступ к AFXMLRequestOperation
, который должен выполнять ту же цель.
Было бы очень много работы по обновлению RestKit для использования версии 2.0 или переименованию, чтобы вы могли использовать обе версии...
У меня появилось новостное приложение, которое выводит новости в формате XML в хранилищах локально в sqlite dbase.., что является прекрасным случаем для restkit.
Однако, я хотел бы также иногда извлекать данные xml вручную (т.е. и не хочу хранить его в dbase). Другими словами, я хотел бы запросить его непосредственно с AFNetworking. Мне нравится, как в AFNetworking 2.0 он автоматически анализирует xml, и поэтому я хочу использовать эту функцию.
Однако Restkit 2.0 связан с AFNetworking 1.3.. и поэтому, если я добавлю это в свой файл podfile:
pod 'RestKit', '~> 0.21.0'
pod "AFNetworking", "~> 2.0"
и запустите pod install
. Я получаю следующую ошибку:
[!] Unable to satisfy the following requirements:
- `AFNetworking (~> 1.3.0)` required by `RestKit/Network (0.21.0)`- `AFNetworking (~> 2.0)` required by `Podfile`
В любом случае, вокруг?
В версии 1.3.0 у вас есть доступ к AFXMLRequestOperation
, который должен выполнять ту же цель.
Было бы очень много работы по обновлению RestKit для использования версии 2.0 или переименованию, чтобы вы могли использовать обе версии...
Быстрое и грязное решение может состоять в том, чтобы просто переименовать файлы afnetworking в af1networking и все классы/интерфейсы/константы в AF1xxxx. Если бы у нас были только пространства имен в Objective-C или у парней AFNetworking была бы префикс новой версии с AF2...
Я думаю, что то, что я описываю, можно было бы сделать с поиском проекта и заменить его в часах.
Альтернативой было бы использовать MKNetworkKit для сети - он аналогичен afnetworking/afnetworking2, но тогда у вас есть 2 разных сетевых библиотеки, и AFNetworking, похоже, прилагает больше усилий.
Используя разветвленную версию XMLDictionary, я в основном добился того, чего хотел достичь, задав вышеуказанный вопрос выполнив следующее:
NSURL *url = [NSURL URLWithString:urlStr];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
AFXMLRequestOperation *operation =
[AFXMLRequestOperation XMLParserRequestOperationWithRequest:request
success:^(NSURLRequest *request, NSHTTPURLResponse *response, NSXMLParser *XMLParser) {
NSDictionary *dict = [NSDictionary dictionaryWithXMLParser:XMLParser];
// do stuff with dict
failure:failure:^(NSURLRequest *request, NSHTTPURLResponse *response,
NSError *error, NSXMLParser *XMLParser){
NSLog(@"somethign weng wrong in fetching news data: %@",
[error localizedDescription]);
}];
[operation start];
Кредит идет Wain в комментариях :)