2017-11-25 13 views
-6

が、私はこのコードを持っていないが、それはいつも私を示していますは、なぜ私が手に入れた:タイプ「どれが」は添字メンバー

タイプは「任意」は「私はドンノー添字メンバー

を持っています何が起こったか知っている。 は、事前に皆さんに感謝し、私は知らないので:(

import UIKit 
class PicturesViewController: UIViewController, UICollectionViewDelegate, UICollectionViewDataSource {  
    var posts = NSDictionary() 
    override func viewDidLoad() { 
     super.viewDidLoad() 
     posts = ["username" : "Hello"] 
    } 
    func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { 
     return posts.count 
    } 
    func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { 
     let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "Cell", for: indexPath) as! PostCollectionViewCell 
     cell.usernameLbl.text = posts[indexPath.row]!["username"] as? String 
     cell.PictureImg.image = UIImage(named: "ava.jpg") 
     return cell 
    } 
} 

答えて

0

をあなたはNSDictionaryのを持っているが、配列としてそれを使用しようとしている、私が間違っていたものを私に説明してください。必要なものは、配列であります辞書の。

私はあなたのコードを少し変更することをお勧めします。

var posts: [[String: String]] = [] // This creates an empty array of dictionaries. 

override func viewDidLoad() { 
    super.viewDidLoad() 
    posts = [ 
     [ "username": "Hello" ] // This adds a dictionary as an element of an array. 
    ] 
} 

... 

func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { 
    let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "Cell", for: indexPath) as! PostCollectionViewCell 
    cell.usernameLbl.text = posts[indexPath.row]["username"] // This will work now. 
    cell.PictureImg.image = UIImage(named: "ava.jpg") 
    return cell 
} 
関連する問題