Я использую каркас кокосовой струи Fusuma. Тем не менее, я обнаружил, что у них есть объективный протокол C, даже подумал, что весь проект был написан быстро.объективный протокол 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 протокола, так как тип параметра не может быть представлен в Objective-C
Я имею в виду, об удалении @objc перед протоколом, но затем он говорит, что мне нужно удалить дополнительную функцию. Я не возражаю изменить их до нормальной функции, однако, я хочу узнать, что мне следует знать, если я удалю @objc
Функция, которую я пытаюсь добавить, - это еще одна функция делегата для предыдущего VC. В этом случае у меня есть 3 VC. Второй, который является этим, захватывает данные из третьего VC после его увольнения. Затем я хочу добавить следующие функции делегата, чтобы VC1, чтобы начать загрузку данных
extension FusumaViewController: VC3Delegate {
func readyToUploadPost(postUpload: PostUpload) {
delegate_?.readyToUploadPost_Fusuma(postUpload)
}
Вероятно, они нуждаются в динамических возможностях Objective-C. Вы не можете сделать это в Свифт. –
Как выглядит функция, которую вы пытаетесь добавить? –
@MikeTaverne, пожалуйста, ознакомьтесь с обновленным вопросом, который касается вашего вопроса. Я попытался удалить необязательный func и удалить objC, но он дает мне ошибку, поскольку метод не может быть объявлен public, поскольку его параметр использует внутренний тип. Поэтому я просто создал совершенно отдельный протокол, чтобы справиться с этим. Не уверен, что это правильный способ сделать это. Кажется, что взлом – user172902