Just a Computer Graphics Studio & My Life

已經知道在Swift專案使用Objective C類別後,現在我們來實現在Swift專案使用Objective C第三方套件。現階段(Swift才一歲半)還是少不了會使用到Objective C第三方套件,所以我們有必要來做橋接(Bridge)使用它!

此篇承接上一篇在Swift專案使用Objective C類別,我們先來下載最廣為人知的開源AFNetworking,它有超過兩萬顆星的紀錄!有了它,網路存取資料的問題大致上都獲得解決~只是現在我還沒看到有Swift版本,先前的專案一直依賴它,只好橋接Objective C版本來使用囉!

在Swift專案使用Objective C第三方套件

下載好AFNetworking開源後,將套件拖曳到專案中,並且在HappyTest8-Briding-Header.h引用它。

CartoonAvatar2

我們以下載上圖影像為例子,在ViewController.swift寫:

/**
 Theme: Swift Using Objective C Third Party Library
 IDE: Xcode 7
 Language: Swift and Objective C
 Date: 104/12/10
 Author: HappyMan
 Blog: https://cg2010studio.wordpress.com/
 */
import UIKit

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()

        var operationManager = AFHTTPRequestOperationManager()
        operationManager.responseSerializer = AFImageResponseSerializer()
        operationManager.GET("https://cg2010studio.files.wordpress.com/2015/12/cartoonavatar2.jpg", parameters: nil,
            success: { (requestOperation:AFHTTPRequestOperation!, responseData:AnyObject!) -> Void in
                print("Download OK")
                var image = responseData as! UIImage
            
            },
            failure: { (requestOperation:AFHTTPRequestOperation?, error:NSError) -> Void in
                print("error\(error)")
        })
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }
}

實際測試其能否順利下載影像:

在Swift專案使用Objective C第三方套件2

運作後停留在中斷點,可以看到image變數已經保有我們想要的影像。於是我們就不太需要擔心,寫Swift實無法使用常用的Objective C第三方套件囉~

話說,Xcode對Swift的編輯還沒有Objective C那樣完備,所以寫起程式仍然卡卡的,相信未來會得到改善。

參考:

Advertisements

發表留言

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

您的留言將使用 WordPress.com 帳號。 登出 / 變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 / 變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 / 變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 / 變更 )

連結到 %s

標籤雲

%d 位部落客按了讚: