由於看了swift很久,但是不管換了什麼公司。專案都是OC的,無奈一直使用的是OC,這次決定把專案改成混編的。以下是遇到的坑:
1.首先是cocoapods檔案報錯,比如,在XXX-bridging-Header.h中找不到AFNetworking.h報錯,因為程式碼中使用的是import "AFNetworking.h".我的cocoapods使用了use_frameworks!,網上找的資料也沒有顯示說一定要使用import <AFNetworking/AFNetworking.h>。但是本人是通過這樣解決的。
2.本以為XXX-bridging-Header.h匯入之前OC裡面的pch裡面的內容就行,沒想到還是各種報錯,匯入的這些檔案中如果使用了cocoapods裡面的第三方庫,還是要使用import<>形式,而不會import""。
3.對於OC裡面定義的巨集,如果是複雜的,比如顏色值,在swift中就不能使用了,只能再寫extension了,感覺這個好雞肋!!!
4.Could not start debugserver on "xxx" when trying to launch "xxx"報錯,重啟Xcode就好了。
5.在OC裡面已經寫好的擴充套件,在swift中如果想使用,比如 :
righttNavItem("cls_add", hiName: "cls_add", sel:#selector(ReportsSummaryViewController.addCarDealer))
複製程式碼
這個方法是在OC中寫好的對UIViewController的擴充套件,swift中這個addCarDealer方法不能直接寫
private func addCarDealer(){
}
複製程式碼
而是要在前面加上@objc 6、swift程式碼中使用ReactiveObjC,由於不會用CocoaSwift,所以還是在swift中使用ReactiveObjC,是一個輸入框的自動搜尋設定:
clsSearchBar?.textField.rac_textSignal().filter({ (text) -> Bool in
return (text?.length)! > 2
}).throttle(0.5).subscribeNext({ (text) in
self.refresh()
})
複製程式碼
7、Cannot load underlying module for 'Alamofire',我的解決辦法是xcode重啟,clean。