possibly fix the launch crash

add new package to track cloudkit issues
This commit is contained in:
Trey t
2022-01-24 10:27:41 -06:00
parent af19d57a62
commit 24be0073ae
4 changed files with 34 additions and 14 deletions

View File

@@ -17,7 +17,6 @@ struct FeelsApp: App {
let persistenceController = PersistenceController.shared
init() {
persistenceController.fillInMissingDates()
BGTaskScheduler.shared.cancelAllTaskRequests()
BGTaskScheduler.shared.register(forTaskWithIdentifier: BGTask.updateDBMissingID, using: nil) { (task) in
BGTask.runFillInMissingDatesTask(task: task as! BGProcessingTask)
@@ -38,6 +37,7 @@ struct FeelsApp: App {
if phase == .active {
UIApplication.shared.applicationIconBadgeNumber = 0
persistenceController.fillInMissingDates()
}
}
}

View File

@@ -17,12 +17,7 @@ class PersistenceController {
static let shared = PersistenceController.persistenceController
private static var persistenceController: PersistenceController {
#if targetEnvironment(simulator)
return PersistenceController(inMemory: false)
#else
return PersistenceController(inMemory: false)
#endif
}
public var viewContext: NSManagedObjectContext {
@@ -142,16 +137,15 @@ class PersistenceController {
func fillInMissingDates() {
let fetchRequest = NSFetchRequest<MoodEntry>(entityName: "MoodEntry")
fetchRequest.sortDescriptors = [NSSortDescriptor(key: "forDate", ascending: false)]
let entries = try! viewContext.fetch(fetchRequest)
if let earliestDate = entries.last?.forDate {
let diffInDays = Calendar.current.dateComponents([.day], from: earliestDate, to: Date()).day
for idx in 1..<diffInDays! {
let searchDay = Calendar.current.date(byAdding: .day, value: -idx, to: Date())
if entries.filter({ Calendar.current.isDate($0.forDate!, inSameDayAs:searchDay!) }).isEmpty {
self.add(mood: .missing, forDate: searchDay!)
if let earliestDate = entries.last?.forDate,
let diffInDays = Calendar.current.dateComponents([.day], from: earliestDate, to: Date()).day,
diffInDays > 1 {
for idx in 1..<diffInDays {
if let searchDay = Calendar.current.date(byAdding: .day, value: -idx, to: Date()),
entries.filter({ Calendar.current.isDate($0.forDate!, inSameDayAs:searchDay) }).isEmpty {
self.add(mood: .missing, forDate: searchDay)
}
}
}