美文网首页其它技术点iOS 开发swift
在swift调用OC的第三方库

在swift调用OC的第三方库

作者: Better_奔 | 来源:发表于2017-06-02 23:55 被阅读389次

    环境:xcode 8.3.2
    系统: MAC OX
    方法:使用桥接文件进行桥接,进行使用。

    具体过程

    本文以现今比较流行的AFNetworking作为例子。现今只有OC库。

    pod的安装不再阐述。

    1️⃣创建一个示例工程:TestAFNetWorkingInSwift
    2️⃣进入项目的根目录,使用命令pod init初始化一个Profile文件,并做如下配置:

    #使用3.1.0版本
    platform :ios, '8.0'
    
    target 'TestAFNetWorkingInSwift' do
      use_frameworks!
      pod 'AFNetworking', '~> 3.1.0'
      
      target 'TestAFNetWorkingInSwiftTests' do
        inherit! :search_paths
        pod 'AFNetworking', '~> 3.1.0'
      end
      
      target 'TestAFNetWorkingInSwiftUITests' do
        inherit! :search_paths
        pod 'AFNetworking', '~> 3.1.0'
      end
    end
    

    3️⃣在项目根目录使用命令pod install安装第三方库。

    创建桥接文件,本文不再阐述,具体请查看我的文章:

    swift和OC的互相调用

    在桥接文件中import第三方库的.h文件即可。

    特别注意:
    在桥接头文件中有两种方式引入第三方库
    使用时请先编译一下工程,否则可能导致无法import

    方法1️⃣:

    //在头文件中使用如下引入:
    #import <AFNetworking/AFNetworking.h>
    

    当使用以上引入方式时,使用时必须import AFNetworking

    import UIKit
    import AFNetworking
    
    @UIApplicationMain
    class AppDelegate: UIResponder, UIApplicationDelegate {
    
        var window: UIWindow?
    
        func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
            // Override point for customization after application launch.
            let _: AFURLSessionManager = AFURLSessionManager.init(sessionConfiguration: URLSessionConfiguration.default)
            return true
        }
    

    方法2️⃣:

    //在头文件中使用如下引入:
    @import AFNetworking;
    

    使用以上方式引入时,可以不需要import

    import UIKit
    
    @UIApplicationMain
    class AppDelegate: UIResponder, UIApplicationDelegate {
    
        var window: UIWindow?
    
        func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
            // Override point for customization after application launch.
            let _: AFURLSessionManager = AFURLSessionManager.init(sessionConfiguration: URLSessionConfiguration.default)
            return true
        }
    

    相关文章

      网友评论

        本文标题:在swift调用OC的第三方库

        本文链接:https://www.haomeiwen.com/subject/mwlpfxtx.html