我使用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