Ambiguous reference to member 'collectionView(_:numberOfItemsInSection:)' when reloading collection view data
ios, swift, uicollectionview, xcode
Solution
You are using UIViewController and not UICollectionViewController so you don't get the collectionView property for free. You need to drag in an outlet form your storyboard and name it @IBOutlet var collectionView: UICollectionView!.
Problem
In an app I've been writing, one of the tabs contains a Collection View that is originally filled with dummy information, but is supposed to be replaced once the user inputs some information in another tab. However, when I try to use `self.collectionView?.reloadData()` Xcode says `Ambiguous reference to member 'collectionView(_:numberOfItemsInSection:)'` . The code relevant to getting the data for the slots was removed. Does anyone here have any idea why it isn't working? ``` // // FirstViewController.swift import UIKit import Alamofire class FirstViewController: UIViewController, UICollectionViewDataSource, UICollectionViewDelegate { let reuseIdentifier = "cell" // also enter this string as the cell identifier in the storyboard var items = ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31", "32", "33", "34", "35", "36", "37", "38", "39", "40", "41", "42", "43", "44", "45", "46", "47", "48"] override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. self.collectionView?.reloadData() } // MARK: - UICollectionViewDataSource protocol // tell the collection view how many cells to make func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { return self.items.count } // make a cell for each cell index path func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { // get a reference to our storyboard cell let cell = collectionView.dequeueReusableCell(withReuseIdentifier: reuseIdentifier, for: indexPath as IndexPath) as! MyCollectionViewCell // Use the outlet in our custom class to get a reference to the UILabel in the cell cell.myLabel.text = self.items[indexPath.item] cell.backgroundColor = UIColor.white cell.layer.borderColor = UIColor.white.cgColor cell.layer.borderWidth = 5 cell.layer.cornerRadius = 8// make cell more visible in our example project return cell } // MARK: - UICollectionViewDelegate protocol func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) { // handle tap events print("You selected cell #\(indexPath.item)!") } ``` }