Swift調用Objective C的FrameWork

很多Github的庫經過很多年的發展,源碼都是OC寫的,,所以,用Swift調用OC的庫就是開發中難免遇到的的一個問題,本文以AFNetworking為例,講解如何跨語言調用。


第一步

創建一個空的工程?
注意,語言選擇Swift?


第二步,創建bridging-header

這個文件的作用,就是把OC的接口暴露給Swift。有兩種方式?
方式一?
創建一個OC文件,然后點擊確定?
?
彈出是否要創建Bridging-Header,點擊確定,這樣會生成三個文件,其中的一個就是我們要用的SwiftUseAFNetworkingDemo-Bridging-Header.h?


方式二,創建任意頭文件,然后在buildSetting里設置為bridging-header?
創建一個頭文件,命名為bridge(任意)?
?
在build setting里設置?


第三步,安裝庫(要提前安裝Cocoa Pod)

然后,我的習慣是用命令行來修改這個文件?
到工程的目錄?
3.1初始化pod

pod init
  • 1

3.2 修改PodFile

vim Podfile
  • 1

然后修改成如圖? ? 3.3安裝庫? 這里可能等的時間有點長,等著就是了

pod install

3.4 重新打開工程,注意,要打開Pod的工程?


第四步,在頭文件中import


第五步,測試

完整代碼

//
//  ViewController.swift
//  SwiftUseAFNetworkingDemo
// // Created by huangwenchen on 15/4/8. // Copyright (c) 2015年 huangwenchen. All rights reserved. // import UIKit class ViewController: UIViewController { lazy var manager:AFURLSessionManager = { var configuration = NSURLSessionConfiguration.defaultSessionConfiguration() var deaultmanager = AFURLSessionManager(sessionConfiguration: configuration); return deaultmanager; }() override func viewDidLoad() { super.viewDidLoad() var url = NSURL(string: "http://jsonplaceholder.typicode.com/posts") var request = NSURLRequest(URL: url!) var dataTask = manager.dataTaskWithRequest(request, completionHandler: { (response:NSURLResponse!, data:AnyObject!, error:NSError!) -> Void in NSLog("%@",data.description) }) dataTask.resume() } } 

測試,庫使用成功。

轉載于:https://www.cnblogs.com/Free-Thinker/p/4966879.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/458665.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/458665.shtml
英文地址,請注明出處:http://en.pswp.cn/news/458665.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

命令行 java文本編輯工具 重載 內存區域 棧 堆

一、dir 列出當前目錄下的文件以及文件夾 md創建目錄 rd刪除目錄 cd 進入指定目錄 cd..返回到上一級目錄 : 切換盤符 比如: F: 二、editPlus 編寫程序 三、重載:在同一個class中,出現了函數名稱相同&#xff0…

數據結構(Java)——查找和排序(1)

1.查找的定義 查找是這樣一個過程,即在某個項目組中尋找某一指定目標元素,或者確定該組中并不存在該目標元素。 對其進行查找的項目的組有時也成為查找池。兩種常見的查找方式:線性查找和二分查找。為了能夠查找某一對象,我們就必…

GetProcAddress()用法

函數功能描述: GetProcAddress()函數檢索指定的動態鏈接庫(DLL)中的輸出庫函數地址。 函數原型: FARPROC GetProcAddress( HMODULE hModule, // DLL模塊句柄 LPCSTR lpProcName // 函數名 ); 參數: hModule [in] 包含此函數的…

支付寶問題LaunchServices: ERROR: There is no registered handler for URL scheme alipay

LaunchServices: ERROR: There is no registered handler for URL scheme alipay (這句話其實是在告訴你 設備上沒有安裝 支付寶的客戶端,此時會走網頁端)而有人會發現并沒有HTML5網頁彈出過一會,會發現服務器返回4000支付失敗,這…

C++string類常用函數 c++中的string常用函數用法總結

string類的構造函數: string(const char *s); //用c字符串s初始化 string(int n,char c); //用n個字符c初始化 此外,string類還支持默認構造函數和復制構造函數,如string s1;string s2"hello";都是正…

排列與組合

話說,初一的時候看到這樣一道題:有一種彩票中獎率為1%,買一百張是不是一定能中獎?答案自然是否定的,但我在想,如果有200張彩票,兩張有獎,買一百張中獎率是多少?一天晚上睡…

剔除服務器返回的NSNull格式的數據

服務器返回NSNull格式的數據,真。。的煩人 解決辦法:在AFN請求里面加上下面兩段代碼,OK AFJSONResponseSerializer *response (AFJSONResponseSerializer *)manager.responseSerializer; response.removesKeysWithNullValues YES;

顯式(靜態)調用: LIB + DLL + .H

1、編程時用ad.h,ad.lib,放在項目當前目錄里2、在頭文件中加入#include "ad.h"3、在Project Setting–>Link–>Object/library modules加入ad.lib執行時將ad.dll跟你的程序放在同一目錄。 就可以直接調用dll中的函數了 當前目錄 轉載于:https://www.cnblogs.co…

boost Mutex

寫過多線程程序的人都知道,不能讓多個線程同時訪問共享的資源是至關重要的。 假如一個線程試圖改變共享數據的值,而另外一個線程試圖去讀取該共享數據的值,結果將是未定義的。 為了阻止這樣的事情發生,需要用到一些非凡的原始數據…

接入支付寶出現交易訂單處理失敗,請稍后再試(ALI64)的錯誤

上次在接入支付寶的時候就碰到了交易訂單處理失敗,請稍后再試(ALI64)這樣的錯誤,后來經過排查和總結,一般來講這種問題都是公鑰和私鑰沒有正確配置造成的。支付寶這邊為了保證數據在傳輸時不被篡改,使用了r…

c中session的用法

c中session的用法你知道嗎?下面小編就跟你們詳細介紹下c中session的用法,希望對你們有用。c中session的用法如下:Session的基本屬性:一、屬性1、SessionIDSessionID 屬性返回用戶的會話標識。在創建會話時,服務器會為每…

查看硬件信息

測試機器的硬件信息: 查看CPU信息(型號) # cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c 8 Intel(R) Xeon(R) CPU E5410 2.33GHz (看到有8個邏輯CPU, 也知道了CPU型號) # cat /proc/cpuinfo | grep physical …

支付寶集成交互流程

交互流程 功能流程 流程說明(以Android平臺為例): 第4步:調用支付接口:此消息就是本接口所描述的開發包提供的支付對象PayTask,將商戶簽名后的訂單信息傳進pay方法喚起支付寶收銀臺,訂單格式具體…

VxLAN基礎

轉自:http://blog.csdn.net/freezgw1985/article/details/16354897 一 . 為什么需要Vxlan1. vlan的數量限制4096個vlan遠不能滿足大規模云計算數據中心的需求2. 物理網絡基礎設施的限制基于IP子網的區域劃分限制了需要二層網絡連通性的應用負載的部署3. TOR交換機MA…

find_first_of()和 find_last_of() 【獲取路徑、文件名】

string 類提供字符串處理函數,利用這些函數,程序員可以在字符串內查找字符,提取連續字符序列(稱為子串),以及在字符串中刪除和添加。我們將介紹一些主要函數。 1.函數find_first_of()和 find_last_of() 執行簡單的模式匹配&#x…

支付寶集成

memo Error Domain系統繁忙,請稍后再試 Code1000 "(null)" reslut {memo "Error Domain\U7cfb\U7edf\U7e41\U5fd9\Uff0c\U8bf7\U7a0d\U540e\U518d\U8bd5 Code1000 \"(null)\"";result "";resultStatus 4000;} 請問安裝…

servlet中實現頁面跳轉return “r:”和return “f:

servlet中實現頁面跳轉return “r:”和return “f:”的區別和作用 分享| 2015-07-28 14:22741830480 | 瀏覽 48 次Pascal2015-07-28 14:26 #知道行家專業創造價值,火熱招募中!#提問者采納熱心網友r是redirect重定向,參…

多線程編程 RW_LOCK 讀寫鎖

RW鎖 讀寫鎖,也叫共享獨占鎖 互斥量 要么是鎖住狀態,要么是不加鎖狀態,而且一次只有一個線程可以對其加鎖。 讀寫鎖可以有三種狀態,讀模式下加鎖狀態,寫模式下加鎖狀態,不加鎖狀態。一次只有一個線程可以占…

Error Domain=NSCocoaErrorDomain Code=3840 JSON text did not start with array or object and option

數據請求失敗 報錯 Error DomainNSCocoaErrorDomain Code3840 "JSON text did not start with array or object and option to allow fragments not set." UserInfo{NSDebugDescriptionJSON text did not start with array or object and option to allow fragm…

vim學習筆記(4)幫助與配置

使用幫助 在Vim中輸入命令:help,即可進入幫助界面,默認是英文,可以通過以下方式安裝中文幫助(以vimcdoc-1.9.0為例): 1、下載中文幫助的文件壓縮包 2、解壓 tar -xzvf vimcdoc-1.9.0.tar.gz 3、…