Поведение просто объясняется этой строкой кода в AFURLSessionManager.h
.
#if (defined(__IPHONE_OS_VERSION_MIN_REQUIRED) && __IPHONE_OS_VERSION_MIN_REQUIRED >= 70000) || (defined(__MAC_OS_X_VERSION_MIN_REQUIRED) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 1090)
AFURLSessionManager
использует NSURLSession
, который доступен начиная с iOS 7 (и OSX 10.9).
Если вы ориентируетесь на iOS 6, AFURLSessionManager
просто нельзя использовать, и он удаляется во время компиляции. Вот почему вы получаете ошибку.
Установка iOS 7 в качестве минимальной цели развертывания устранит ошибку компиляции, даже если она может не соответствовать вашим потребностям.
Тем не менее, я предлагаю использовать CocoaPods для управления сторонними зависимостями, такими как AFNetworking
.
AFNetworking 2.0
— это модульная структура, что означает, что вы можете выбирать, какие модули использовать в соответствии с вашими потребностями. Ядро поддерживает iOS 6, но некоторые модули поддерживают только iOS 7, например модуль NSURLSession
, которому принадлежит AFURLSessionManager
.
Модульность достигается за счет использования подспецификаций CocoaPods. Чтобы импортировать AFNetworking
и модуль NSURLSession
, вам просто нужно сделать что-то вроде
platform :ios, '7.0'
pod 'AFNetworking', '~> 2.0'
pod 'AFNetworking/NSURLSession', '~> 2.0'
Вы по-прежнему можете ориентироваться на iOS 6, но вы не получите несовместимые подмодули, как указано в документации CocoaPods.
Подспецификация может ограничивать платформу родительской спецификации. В этом случае он будет унаследован родительской спецификацией, только если цель подфайла поддерживает его.
person
Gabriele Petronella
schedule
30.09.2013