oc和swift之間的互調很簡單,ios8以後官方給出了這兩種語言之間的橋接方案,簡單說就是在swift工程中,通過提示建立的bridging標頭檔案可以將oc檔案和swift檔案銜接在一起,從而可以在oc檔案中引用swift類,或者在swift檔案中引用oc的類。應用較多的主要是在swift中呼叫oc類,使得在最新的swift工程中仍然能夠相容使用以前的oc類庫等。這裡通過乙個簡單的例子展示在swift工程中oc和swift之間的互調:
這裡我們在viewcontroller.swift中呼叫occlass類,同時在occlass類中呼叫swiftclass.swift。其中在swift中引用oc類時要在bridging標頭檔案中引入oc類的標頭檔案(swift檔案中沒有標頭檔案及其引用),而在oc中引用swift類時直接引入「swiftbridge-swift.h」即可,不需要在bridging標頭檔案設定,其中「swiftbridge」為工程名,該檔案是隱藏的,對工程中所有swift類檔案進行了向oc語言的翻譯,從而在oc檔案中可以像呼叫其他oc檔案一樣呼叫工程中的swift類檔案。
在swiftclass.swift中定義乙個例項方法和乙個類方法:
在occlass類中呼叫swiftclass:import uikit
class swiftclass: nsobject
class func swiftclassmethod() ->
void
}
在bridging標頭檔案引入oc類標頭檔案供swift呼叫:/* occlass.h */
#import
@inte***ce
occlass : nsobject
- (void)ocinstancemethod;
+ (void)occlassmethod;
@end
/* occlass.m */
#import "occlass.h"
#import "swiftbridge-swift.h" /* 引入swift類標頭檔案 */
@implementation
occlass
- (void)ocinstancemethod
+ (void)occlassmethod
@end
在viewcontroller.swift中呼叫occlass類:/* swiftbridge-swift.h */
#import
"occlass.h"
列印結果:/* viewcontroller.swift */
import uikit
class
viewcontroller: uiviewcontroller
}
另外類似的也可以實現swift和c語言之間的互調。swift instance method!
2017-04-12 12:
40:39.657 swiftbridge[3773:5420107] oc instance method!
swift
class
method!
2017-04-12 12:
40:39.657 swiftbridge[3773:5420107] oc class
method!
iOS沉思錄 BAD ACCESS記憶體錯誤除錯
bad access報錯屬於記憶體訪問錯誤,會導致程式崩潰,錯誤的原因是訪問了野指標 懸掛指標 野指標指的是本來指標指向的物件已經釋放了,但指向該物件的指標沒有置 nil,指標指向隨機的未知的記憶體,程式還以為該指標指向那個物件,導致存在一些潛在的危險訪問操作,這些危險訪問操作無法被指標指向的未知記...
iOS開發 OC專案呼叫Swift方法
為防止出問題,建議以這樣的方法做 1.建乙個oc工程命名為swiftoc 2.新建乙個swfit檔案命名為test.swift,會彈出提示,選擇create bridging header建立橋接檔案,系統會建立 工程名 bridging header.h 3.配置工程 設定defines modu...
OC和Swift混編 驚喜
今天在和一位前輩交流的之後,使用了oc和swift混編開發,遇到了乙個讓我忍不住要歡呼的情況,在這裡,跟大家分享一下,也再次讚嘆一下xcode的強大.oc和swift混編出現最多的就是在編寫swift 的過程中使用oc框架了.以前,在xcode6.3beta版本的時候,我猶記得我們在進行oc和swi...