Created
August 6, 2019 15:03
-
-
Save PaulWoodIII/32c7b66e347794bc8b5735d18a8da697 to your computer and use it in GitHub Desktop.
right to the edge of where I think things should work I get a EXC_BAD
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| // | |
| // NamesByYearView.swift | |
| // NameList | |
| // | |
| // Created by Paul Wood on 7/31/19. | |
| // Copyright © 2019 Paul Wood. All rights reserved. | |
| // | |
| import SwiftUI | |
| import CoreData | |
| struct NamesByYearView: View { | |
| @EnvironmentObject var coreDataStack: CoreDataStack | |
| @Environment(\.managedObjectContext) var managedObjectContext | |
| @ObservedObject var year: YearOfBirth | |
| @EnvironmentObject var importer: NameDatabaseImporter | |
| var years: FetchRequest<CountForNameByYear> | |
| var ascending: Binding<Bool> | |
| init(year: YearOfBirth, | |
| years: FetchRequest<CountForNameByYear>, | |
| ascending: Binding<Bool>) { | |
| self.year = year | |
| self.years = years | |
| self.ascending = ascending | |
| } | |
| var body: some View { | |
| VStack { | |
| NamesByYearCollectionView(year: year, context: managedObjectContext) | |
| } | |
| .navigationBarItems(leading: Button(action: { | |
| self.ascending.wrappedValue.toggle() | |
| }, label: { Text("Toggle") })) | |
| .navigationBarItems(trailing: Text("Total Names: \(years.wrappedValue.count)")) | |
| .navigationBarTitle(Text("Names from \(year.year ?? "")") ) | |
| .onAppear { | |
| self.importer.startParsing(year: self.year) | |
| } | |
| } | |
| } | |
| struct FetchedResultContainer: View { | |
| @Environment(\.managedObjectContext) var managedObjectContext | |
| @ObservedObject var year: YearOfBirth | |
| var years: FetchRequest<CountForNameByYear> | |
| var ascending: State<Bool> | |
| init(year: YearOfBirth, ascending: Bool = true) { | |
| self.year = year | |
| self.ascending = State(initialValue: true) | |
| let request = CountForNameByYear.fetchRequest(forYear: year, ascending: ascending) | |
| let fetchRequest = FetchRequest<CountForNameByYear>(fetchRequest: request) | |
| self.years = fetchRequest | |
| } | |
| var body: some View { | |
| return NamesByYearView(year: self.year, | |
| years: self.years, | |
| ascending: self.ascending.binding) | |
| } | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment