2017-09-23 62 views
1

這是JTAppleCalendar委託和數據源方法實現的整個擴展部分。即使在執行委託方法時也得到「不符合JTAppleCalendarViewDelegate」錯誤

extension ViewController : JTAppleCalendarViewDelegate, JTAppleCalendarViewDataSource { 
    func configureCalendar(_ calendar: JTAppleCalendarView) -> ConfigurationParameters { 
    // set date formatter 
    formatter.dateFormat = "yyyy MM dd" 
    formatter.timeZone = Calendar.current.timeZone 
    formatter.locale = Calendar.current.locale 

    let startDate = Date() 
    let endDate = (Calendar.current as NSCalendar).date(byAdding: .day, value: 180, to: startDate, options: [])! 

    let parameters = ConfigurationParameters(startDate: startDate, endDate: endDate) 
    return parameters 
    } 
    func calendar(_ calendar: JTAppleCalendarView, cellForItemAt date: Date, cellState: CellState, indexPath: IndexPath) -> JTAppleCell { 
    let cell = calendar.dequeueReusableJTAppleCell(withReuseIdentifier: "DateCell", for: indexPath) as! AccountsDateCell 
    cell.dateLabel.text = cellState.text 
    return cell 
    } 
} 

Xcode是說:

類型 '視圖控制器' 不符合協議 'JTAppleCalendarViewDelegate'

它看起來像問題是與圖書館的手動安裝。我拖放文件到這個項目中。有沒有其他方法可以手動將庫添加到項目中?

+1

我對這個庫一無所知,但它看起來像你已經實現了一個數據源方法而沒有委託方法。您需要實現任何非可選委託和任何非可選數據源方法,因爲您聲明您符合這些協議。 – rmaddy

+0

@rmaddy感謝回覆,按照http://cocoadocs.org/docsets/JTAppleCalendar/7.0.6/Protocols/JTAppleCalendarViewDelegate.html我正在實現所需的非可選委託方法是'日曆(_:cellForItemAt: cellState:indexPath:)'。 upvoted for reply –

+1

當你點擊紅色錯誤時,XCode 9應該向你顯示你缺少的內容。你可以點擊它,然後讓Xcode爲你插入缺失的功能嗎? –

回答

1

您必須實施configureCalendar(_ calendar: JTAppleCalendarView) -> ConfigurationParameters委託方法。

如果您使用的是Xcode 9,它應該提供爲您插入所需的功能存根。