Я пытаюсь перенести некоторый код Objective-C на мой код Swift, но есть некоторые ошибки протокола в Swift. В моей Objective-C все работает отлично.Can; t определить и использовать протокол
У меня есть один класс сказать MGCDayPlannerEKViewController,
public class MGCDayPlannerEKViewController : MGCDayPlannerViewController, UIPopoverPresentationControllerDelegate {
public var calendar: NSCalendar!
public var visibleCalendars: Set<NSObject>!
public var eventStore: EKEventStore! { get }
weak public var delegate: MGCDayPlannerEKViewControllerDelegate!
/** designated initializer */
public init!(eventStore: EKEventStore!)
public func reloadEvents()
}
public protocol MGCDayPlannerEKViewControllerDelegate : NSObjectProtocol {
@available(iOS 4.0, *)
optional public func dayPlannerEKEViewController(vc: MGCDayPlannerEKViewController!, willPresentEventViewController eventViewController: EKEventViewController!)
@available(iOS 4.0, *)
optional public func dayPlannerEKViewController(vc: MGCDayPlannerEKViewController!, navigationControllerForPresentingEventViewController eventViewController: EKEventViewController!) -> UINavigationController!
}
В моем Свифта классе, я унаследовав этот класс, а также создание одного протокола внутри моего нового класса
protocol WeekViewControllerDelegate :MGCDayPlannerEKViewControllerDelegate,CalendarViewControllerDelegate,UIViewControllerTransitioningDelegate {
}
class WeekViewController: MGCDayPlannerEKViewController {
var delegate: WeekViewControllerDelegate?
var showDimmedTimeRanges = false
var isiPad : Bool {
if UIDevice.currentDevice().userInterfaceIdiom == .Pad {
return true
}else{
return false
}
}
}
Но я получаю ошибку здесь в декларации делегатов. Ошибка
Property 'delegate' with type 'WeekViewControllerDelegate?' cannot override a property with type 'MGCDayPlannerEKViewControllerDelegate!' (aka 'ImplicitlyUnwrappedOptional<MGCDayPlannerEKViewControllerDelegate>')
Что я делаю неправильно?