/ / Коротке замикання при використанні протоколу Swift - протоколів ios, objective-c, swift

Коротке замикання при використанні Swift-протоколу - ios, objective-c, swift, протоколів

Як відомо, не можна включати файл заголовка інтерфейсу з файлу в -Header.h. Моя фактична проблема полягає в тому, що у мене є визначення протоколу класу 1, який є Swift:

@protocol arrivingDelegate;

@interface palettaTraffic : NSObject<MKMapViewDelegate, arrivingDelegate> {
}

Якщо я імпортую файл * -Swift.h, я потрапляю в потворний цикл, коли файл включений в інший, який включений у файл заголовка.

Це відбувається, коли я використовую директиву @protocol: це попередження, але досить тривожний.

Знімок з попередженнями

Ось як визначається швидкий протокол:

@objc public protocol arrivingDelegate {
func submitManualBusLine(busStripe:StripeProtocol)
}

Я також знайшов подібний пост: Swift протокол в класі Objective-C

Але жодне з пропозицій не застосовується.

Відповіді:

0 для відповіді № 1

Якщо я імпортую файл * -Swift.h, я потрапляю в потворний цикл, коли файл включений в інший, який включений у файл заголовка.

Гаразд, але це те, що вам потрібно зробити. Я не бачу, як ви робите це знімок екрана вище, тому ваш протокол не розглядається.

Рішення "потворного циклу" має бути лише питанням налаштування замовлення в якій речі імпортуються у ваші різні Objective-C файли.


0 для відповіді № 2

Прийняття швидких протоколів в Objective-c - складний процес. Я виправив проблему, перенесшивши прийомний клас на Свіфт.


0 для відповіді № 3

Те, що я схильний робити в моїх проектах, - це усунути відповідність протоколу класу ObjC у файлі Swift, щоб уникнути цієї помилки. Зазвичай файл, де визначено протокол.

extension PalettaTraffic: ArrivingDelegate {}

Чому? Ми переміщуємо нашу кодову базу від ObjC до Swift, але ми не можемо мігрувати кожен клас одночасно, тому ми маємо великий "здається" між Swift & ObjC, де типу Swift потрібні ObjC і навпаки. Для мене це рішення, яке викликає найменшу кількість робіт відразу.