मैंने CollectionView सेल में लेबल डाला लेकिन जब मैंने आउटलेट बनाया तो यह त्रुटि दिखाई दी।

त्रुटि: ViewController से UILabel तक मुद्रा लेबल आउटलेट अमान्य है। आउटलेट को दोहराने वाली सामग्री से नहीं जोड़ा जा सकता

class ViewController: UIViewController {
    
    var currency = Currency.getCurrency()

    @IBOutlet var currencyLabel: UILabel!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
    }


}

extension ViewController: UICollectionViewDataSource {
    func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
        return currency.count
    }
    
    func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
        let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "currencyCell", for: indexPath) as! CurrencyCollectionViewCell
        
        let currencyList = currency[indexPath.row]
        currencyLabel.text = "\(currencyList.currency) \n \(currencyList.cash)"
        return cell
    }
    
}

screen Storyboard

0
Евгений 2 जिंदा 2021, 18:18

2 जवाब

सबसे बढ़िया उत्तर

आपको CurrencyCollectionViewCell कक्षा में अपनी मुद्रा लेबल का IBOutlet बनाना होगा, और इसे इस तरह उपयोग करना होगा

func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
   let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "currencyCell", for: indexPath) as! CurrencyCollectionViewCell          
   let currencyList = currency[indexPath.row]
   cell.currencyLabel.text = "\(currencyList.currency) \n \(currencyList.cash)"   
   return cell
}
1
Surjeet 2 जिंदा 2021, 19:56

आपने एक साधारण गलती की है।

आपको नीचे दिए गए आउटलेट को CollectionViewCell में बनाना चाहिए, न कि आपके ViewController में

@IBOutlet var currencyLabel: UILabel!
-1
Kudos 25 फरवरी 2021, 17:17