2017-09-17 3 views
1

J'utilise fs calendar et j'essaie de définir des points d'événement à partir d'un tableau nommé dates. ce tableau contient des dates d'événement qui sont sauvegardées sous forme de chaîne. donc je dois convertir chaque index à date et ensuite définir un point d'événement pour cette date. ici est ma tentative de le faire:Comment afficher les points d'événement dans un calendrier fs à partir d'un tableau

if dates.isEmpty == false { 
    func calendar(_calendar: FSCalendar!, hasEventForDate dateFormatter: DateFormatter) -> Bool { 
    for i in 0...dates.count - 1 { 
     let dateFormatter = DateFormatter() 
     dateFormatter.dateFormat = "yyyy/MM/dd" 
     dateFormatter.locale = Locale.init(identifier: "fa_IR") 

     dateFormatter.date(from: dates[i]) 

     dateFormatter.dateFormat = "yyyy/MM/dd" 

     return true 
    } 
    return false 

} 
} 

, mais rien ne se passe et il n'y a pas de point d'événement lorsque je compile le code. Qu'est-ce que je fais mal?

Répondre

0

Première recommandation, utiliser un dictionnaire au lieu de tableau des dates, est moins exigeant pour rechercher les dates dans un dictionnaire

Deuxième si vous avez besoin d'utiliser des valeurs dans un tableau, alors vous devez utiliser pouren et utiliser des objets directement, non index pour obtenir des objets dans le tableau original, déclarer la date formatter une seule fois

Troisième vous devez utiliser func calendar(_ calendar: FSCalendar, numberOfEventsFor date: Date) -> Intparcefunc calendar(_calendar: FSCalendar!, hasEventForDate dateFormatter: DateFormatter) -> Bool est dépréciée

Essayez avec ce code

func calendar(_ calendar: FSCalendar, numberOfEventsFor date: Date) -> Int { 
    let dateFormatter = DateFormatter() 
    dateFormatter.dateFormat = "yyyy/MM/dd" 
    dateFormatter.locale = Locale.init(identifier: "fa_IR") 

    for dateStr in dates{ 
     if(dateFormatter.string(from: date) == dateStr) 
     { 
      return 1 
     } 
    } 
    return 0 
}