Thread 1: Fatal error: Unexpectedly found nil while unwrapping an error occurs. Just inside this function.
func calendar(_ calendar: FSCalendar, numberOfEventsFor date: Date) -> Int {
var dateForDot = dateFormatter.string(from: date)
self.getScheduleDot(date: dateForDot)
let dotArr = self.userDefaults.array(forKey: "arrForDotDisplay") as! [String]
for dateString in dotArr {
if dateForDot == dateString {
return 1
}
}
return 0
}
The details of the "getScheduleDot" method are as follows
func getScheduleDot(date: String) {
self.db
.collection("users")
.document(fireAuthUID)
.addSnapshotListener { (snapshot, error) in
guard let document = snapshot else {
print("erorr2 \(String(describing: error))")
return
}
guard let data = document.data() else { return }
self.teamIDFromFirebase = data["teamID"] as? String ?? ""
self.db
.collection("teams")
.document(self.teamIDFromFirebase)
.collection("schedule")
.whereField("date_start", isEqualTo: date)
.getDocuments() { (querySnapshot, err) in
if err != nil {
print("scheduleを取得できませんでした")
return
} else {
var i = 0
for document in querySnapshot!.documents {
let dataFromFirebase: [String : Any] = document.data()
let startDateFromFirebase = dataFromFirebase["date_start"] ?? ""
let endDateFromFirebase = dataFromFirebase["date_end"] ?? ""
self.dotDisplayArr.append(startDateFromFirebase as! String)
self.dotDisplayArr.append(endDateFromFirebase as! String)
i += 1
}
self.dotDisplayArr as NSArray
self.userDefaults.removeObject(forKey: "arrForDotDisplay")
self.userDefaults.set(self.dotDisplayArr, forKey: "arrForDotDisplay")
self.userDefaults.synchronize()
}
}
}
}
Although it was working normally until then, you will get such bugs after updating xcode. I would like to tell you the reason.