Невозможно использовать AFNetworking в расширении «Сегодня»

Я изо всех сил пытаюсь заставить AFNetworking работать с моим расширением Today.

Мое приложение представляет собой проект Objective-c с Cocopods (0.39.0), в котором я начал переносить некоторые вещи на Swift. Я успешно заставил Swift работать с target-c, и я использую AFNetworking как в коде Swift, так и в коде Objective-c.

Я добавил расширение Today (сделано в Swift), и когда я пытаюсь использовать классы Swift, использующие AFNetworking, он жалуется, что не удалось найти «AFHTTPRequestOperationManager» и другие классы, связанные с AFNetworking.

Я пробовал разные решения для Podfile, который в настоящее время настроен следующим образом:

source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '8.0'

def testing_pods
    pod 'Google/Analytics', '~> 1.0.0'
    pod 'AFNetworking', '~> 2.6'
    pod 'XCDYouTubeKit', '~> 2.4.0'
    pod 'FBSDKCoreKit'
    pod 'FBSDKShareKit'
    pod 'FBSDKLoginKit'
    pod 'Parse'
    pod 'ParseUI'
    pod 'ParseFacebookUtilsV4'
    pod 'ParseTwitterUtils'
end

target '***' do

    testing_pods

end

target '***' do

    testing_pods

end

target 'todayExtension' do
    pod 'AFNetworking', '~> 2.6'
end

post_install do |installer_representation|
    installer_representation.pods_project.targets.each do |target|
        puts "=== #{target.name}"
        if target.name == "AFNetworking"
            puts "Setting AFNetworking Macro AF_APP_EXTENSIONS so that it doesn't use UIApplication in extension."
            target.build_configurations.each do |config|
                puts "Setting AF_APP_EXTENSIONS macro in config: #{config}"
                config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] ||= ['$(inherited)', 'AF_APP_EXTENSIONS']
            end
        end
        target.build_configurations.each do |config|
            puts "Setting only_active_arch in config: #{config}"
            config.build_settings['ONLY_ACTIVE_ARCH'] = 'NO'
        end
    end
end

Я уже удалил все модули и рабочее пространство и создал их снова, но проблема все та же.

Любое предложение?

Спасибо


person estemendoza    schedule 08.01.2016    source источник
comment
Прежде всего почистите сборку и попробуйте создать новый файл bridging-header.h.   -  person imjaydeep    schedule 08.01.2016
comment
@imjaydeep Спасибо, но при чем тут это? Я забыл упомянуть, что расширение является расширением Swift, а не objetive-c, я включу его в основной пост.   -  person estemendoza    schedule 08.01.2016
comment
эта ссылка поможет вам создать файл заголовка stackoverflow.com/questions/34627082/   -  person imjaydeep    schedule 08.01.2016
comment
если вы хотите получить ответ json через AFnetworking, последний ответ по этой ссылке будет полезен title="получение ответа с использованием afnetworking в swift"> stackoverflow.com/questions/34669707/   -  person imjaydeep    schedule 08.01.2016


Ответы (1)


По умолчанию cocoapods создает статические библиотеки для модулей, но Swift не поддерживает статические библиотеки. Поэтому, чтобы использовать cocoapods с быстрым, вы должны указать использовать динамическую структуру. Для этого включите следующую строку в свой Podfile

use_frameworks!

Для получения дополнительной информации пройдите

https://blog.cocoapods.org/CocoaPods-0.36/

http://www.raywenderlich.com/97014/use-cocoapods-with-swift

Обновление Также имейте в виду, что AFHTTPRequestOperationManager и другие связанные с NSURLConnection классы недоступны в AFNetworking 3.x.

person Johnykutty    schedule 08.01.2016