我使用Fusuma cocoal pod框架。但是,我發現他們有一個客觀的C協議,甚至認爲整個項目都是快速編寫的。swift中的客觀C協議
@objc public protocol FusumaDelegate: class {
func fusumaImageSelected(image: UIImage)
optional func fusumaDismissedWithImage(image: UIImage)
func fusumaVideoCompleted(withFileURL fileURL: NSURL)
func fusumaCameraRollUnauthorized()
optional func fusumaClosed()
}
我想在協議中添加另一個功能。然而,我正在此warining
方法不能是@objc協議中的一員,因爲該參數的類型不能在表示客觀-C
我正在考慮去除@objc在協議前面,但它說我必須刪除可選的func。我不介意改變他們只是正常的func,但是,我想找出如果我刪除@objc我應該知道什麼我想添加的函數是另一個代表函數的前一個VC。在這種情況下,我有3個VC。這是第二個被解散後從第三VC獲取的數據。然後我想添加下面的委託功能,讓VC1開始上傳
extension FusumaViewController: VC3Delegate {
func readyToUploadPost(postUpload: PostUpload) {
delegate_?.readyToUploadPost_Fusuma(postUpload)
}
可能,他們需要的Objective-C的動態能力。你不能在Swift中這樣做。 –
您嘗試添加的功能看起來像什麼? –
@MikeTaverne,請參閱解決您問題的更新問題。我試圖刪除可選的func並刪除objC,但它給了我一個錯誤,說明Method不能被聲明爲public,因爲它的參數使用了一個內部類型。所以我最終創建了一個完全獨立的協議來處理它。不知道這是否是正確的做法。看起來像一個黑客 – user172902