Post

Replies

Boosts

Views

Activity

Core Data Make Decodable
So I am using core data and I have to make my class Decodable to use the decoder for my get request. The errors I get are 'self' used in property access before 'super.init' call in my CoreDataClass each of my decode values has the error. CoreDataProperties extension CurrentPlayers {   @nonobjc public class func fetchRequest() - NSFetchRequestCurrentPlayers {     return NSFetchRequestCurrentPlayers(entityName: "CurrentPlayers")   }   @NSManaged public var photoUrl: String?   @NSManaged public var firstName: String?   @NSManaged public var lastName: String?   @NSManaged public var position: String?   @NSManaged public var team: String?   @NSManaged public var yahooName: String?   @NSManaged public var status: String?   @NSManaged public var jerseyNumber: Int64 } extension CurrentPlayers : Identifiable { } CoreDataClass @objc(CurrentPlayers) public class CurrentPlayers: NSManagedObject, Decodable {       enum CodingKeys: String, CodingKey {     case photoUrl = "PhotoUrl"     case firstName = "FirstName"     case lastName = "LastName"     case position = "Position"     case team = "Team"     case yahooName = "YahooName"     case status = "Status"     case jerseyNumber = "JerseyNumber"   }       required public init(from decoder: Decoder) throws {     let values = try decoder.container(keyedBy: CodingKeys.self)     photoUrl = try values.decode(String.self, forKey: CodingKeys.photoUrl)     firstName = try values.decode(String.self, forKey: CodingKeys.firstName)     lastName = try values.decode(String.self, forKey: CodingKeys.lastName)     position = try values.decode(String.self, forKey: CodingKeys.position)     team = try values.decode(String.self, forKey: CodingKeys.team)     yahooName = try values.decode(String.self, forKey: CodingKeys.yahooName)     status = try values.decode(String.self, forKey: CodingKeys.status)     jerseyNumber = Int64(try values.decode(Int.self, forKey: CodingKeys.jerseyNumber))   } }
12
0
3.3k
Mar ’21
Problem With Filter
I'm trying to filter my players using searchBar with scope in a collectionview using a switch statement and my case 0 works but the issue is my other cases I can type into the searchBar but I can't seem to filter (nothing shows up) nor can I delete all the characters when I type. I have 2 arrays my cPlayerArr is my original array when data is recieved and my allTextArr is my filtered array when any kind of filtering is done.    func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String) {     allTextArr = cPlayerArr.filter({ player - Bool in       switch searchBar.selectedScopeButtonIndex {       case 0:         if searchText.isEmpty {           fetchAllPlayers()         } else {         return           player.yahooName!.lowercased().contains(searchText.lowercased())         }       case 1:         if searchText.isEmpty {           fetchForwards()         } else {           print(searchText)           return player.yahooName!.lowercased().contains(searchText.lowercased()) && player.position == "C" &&             player.position == "RW" && player.position == "LW"         }       case 2:         if searchText.isEmpty {           fetchDefense()         } else {           return player.yahooName!.lowercased().contains(searchText.lowercased()) && player.position == "D"         }       case 3:         if searchText.isEmpty {           fetchGoalies()         } else {           return player.yahooName!.lowercased().contains(searchText.lowercased()) && player.position == "G"         }       default:         return false       }       return true     })     collections.reloadData()   }    func searchBar(_ searchBar: UISearchBar, selectedScopeButtonIndexDidChange: Int) {     if (searchBar.selectedScopeButtonIndex == 0) {       cPlayerArr.removeAll()       allTextArr.removeAll()       fetchAllPlayers()     } else if (searchBar.selectedScopeButtonIndex == 1) {       allTextArr.removeAll()       fetchForwards()     } else if (searchBar.selectedScopeButtonIndex == 2) {       allTextArr.removeAll()       fetchDefense()     } else {       allTextArr.removeAll()       fetchGoalies()     }   }    func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) - Int {     if (searchBar.text != "" || searchBar.selectedScopeButtonIndex 0) {       return allTextArr.count     } else {       return cPlayerArr.count     }   }
14
0
1.1k
Apr ’21
Fetch Core Data Issue
I have an issue fetching objects from Core Data in my favourites section. I can save it with a button but I can not seem to retrieve the objects when I restart the app. I get it to print over 40000 (I have no idea why) and I see no favourites in my favourites section when I added them before.    override func viewDidLoad() {     super.viewDidLoad()     if currentFav == nil {     //display nil     fetchSave()     self.tableView.separatorStyle = UITableViewCell.SeparatorStyle.none     } else {     NotificationCenter.default.post(name: .passFavNotification,     object: self.currentFav)     DispatchQueue.main.asyncAfter(deadline: .now() + 300) {         self.reviewRating.requestReview(isWrittenReview: false)       }     }   } //trying to get this function to retrieve my objects in the persistent store    func fetchSave() {     let fetchRequest: NSFetchRequest<CurrentPlayers>     fetchRequest = CurrentPlayers.fetchRequest()     do {       let objects = try context.fetch(fetchRequest)       //I get over 40000 objects       print("These are how many saved favourites I have: \(objects.count)")       tableView.reloadData()     } catch {       print("Fetch failed")     }    }       @IBAction func save(_ sender: UIBarButtonItem) {     let saveFav = CurrentPlayers(context: context)     // Assign values to the entity's properties     for o in prefArr {     saveFav.yahooName = o.yahooName     saveFav.team = o.team     saveFav.position = o.position     saveFav.photoUrl = o.photoUrl     print("These are my saved objects: \(saveFav)")     // To save the new entity to the persistent store, call     // save on the context     }     do {       try context.save()     } catch {       print(error)     }   }
16
0
2.3k
Sep ’21
Protocol Not Working
I'm trying to transfer a tableview cell from my hockeydetailVC to my favouritesVC using a button and I can't transfer it due to some issue. My hockeydetailVC protocol addThis {   func addFav(data: CurrentPlayers) } I'm trying to transfer my item object var item: CurrentPlayers?&#9;   var delegate: addThis? = nil&#9; func sendData() {     if delegate != nil {       let data = item!       delegate?.addFav(data: data)       print("This is the data being transferred: \(data)")     }   }       @IBAction func addToFav(_ sender: Any) {     sendData()     print("Favourite button Pressed")   } My favouritesVC  var currentFav: CurrentPlayers? func addFav(data: CurrentPlayers) {     currentFav = data   } I have a segue for my button so I have this   override func prepare(for segue: UIStoryboardSegue, sender: Any?) {   if segue.identifier == "r" {     let hockeyDetailVC: HockeyDetailVC = segue.destination as! HockeyDetailVC     hockeyDetailVC.delegate = self   }  } If the transfer works then my sendData() method up top would print a statement but my addToFav only prints "favourite button pressed".
19
0
1.2k
Feb ’21
Need Help Transfer Data From Button
I am not sure how to transfer data a name from a button in my UITableViewCell to a UIViewController. I have a prepare function but it doesn't work gives me an unrecognized selector error. Is there a way to use it for this instance? func prepare(for segue: UIStoryboardSegue, sender: Any?) {     if segue.identifier == "hs" {     let destinationController = segue.destination as! HighlightsVC       destinationController.playerName = (item.yahooName!)   }   }
36
0
2.4k
Aug ’21