zachowanie jest tylko wyjaśnić tej linii kodu w 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
wykorzystuje NSURLSession
, który jest dostępny z iOS 7 (a) na 10,9 OS X.
Jeśli kierujesz reklamy na system iOS 6, AFURLSessionManager
, po prostu nie można go użyć i jest on usuwany podczas kompilacji. Właśnie dlatego pojawia się błąd.
Ustawienie iOS 7 jako minimalnego celu wdrożenia spowoduje naprawienie błędu kompilacji, nawet jeśli nie spełnia Twoich potrzeb.
Powiedział, że moje sugestie jest użycie CocoaPods zarządzanych zależności trzecich, takich jak AFNetworking
.
AFNetworking 2.0
to modułowa struktura, co oznacza, że można wybrać moduły do wykorzystania zgodnie z własnymi potrzebami. Rdzeń obsługuje iOS 6, ale niektóre moduły obsługują tylko iOS 7, na przykład moduł NSURLSession
, do którego należy AFURLSessionManager
.
Modułowość osiąga się przez użycie CocoaPods subspecs. W celu zaimportowania AFNetworking
i moduł NSURLSession
, po prostu trzeba coś zrobić jak
platform :ios, '7.0'
pod 'AFNetworking', '~> 2.0'
pod 'AFNetworking/NSURLSession', '~> 2.0'
Nadal można kierować iOS 6, ale nie dostaniesz niezgodne submodules, jak określono w dokumentacji CocoaPods.
Subspec może ograniczać platformę specyfikacji nadrzędnej. W takim przypadku będzie on dziedziczony przez specyfikację nadrzędną tylko wtedy, gdy obiekt docelowy pliku podapli obsługuje go.
w jaki sposób zaimportował ramę? Czy używasz CocoaPods? –
Właściwie właśnie przeciągnąłem folder AFNetworking do mojego projektu, tak jakby to było tutaj http://mobile.tutsplus.com/tutorials/iphone/ios-sdk_afnetworking/ –
... czy pobierzesz AFNetworking z repozytorium, czy z link na stronie samouczka? – lxt