###前提・実現したいこと
realmから要素(nameやimgなど)を順番に抜き出して、collectionViewのLabelやUIImage(named:)に代入したいです。
List: Object の i番目の name を取得できたら動くかなと思ったのですが、List[indexPath]のようにアクセスしたい場合はどうすれば良いのでしょうか
[iPhone] UICollectionView で マス目表示
###発生している問題・エラーメッセージ
Instance member 'subscript' cannot be used on type 'List'
###該当のソースコード
swift
1 2 let photos = ["nagi", "toko","saya","yumiko","yuyu", "yuka","miki","mai","kurumi","katakuriko"] 3 4func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell{ 5 6 // Cell はストーリーボードで設定したセルのID 7 let testCell:UICollectionViewCell = collectionView.dequeueReusableCell(withReuseIdentifier: "Cell", for: indexPath) 8 9 // Tag番号を使ってImageViewのインスタンス生成 10 let imageView = testCell.contentView.viewWithTag(1) as! UIImageView 11 // 画像配列の番号で指定された要素の名前の画像をUIImageとする 12--- 13 // 元々 14 let cellImage = UIImage(named: photos[indexPath.row]) 15 //やりたいこと 16 let cellImage = UIImage(named: realm.objects(List[indexPath.row].img)) 17--- 18 // UIImageをUIImageViewのimageとして設定 19 imageView.image = cellImage 20 21 // realm 22 let realm = try! Realm() 23 24 // Tag番号を使ってLabelのインスタンス生成 25 let Label = testCell.contentView.viewWithTag(2) as! UILabel 26--- 27 // 元々 28 Label.text = photos[indexPath.row] 29 //やりたいこと 30 Label.text = realm.objects(List[indexPath.row].name) 31--- 32 let Label2 = testCell.contentView.viewWithTag(3) as! UILabel 33 Label2.text = String(result[(indexPath).row]) 34 35 return testCell 36} 37 38class List: Object { 39 @objc dynamic var name = "" 40 @objc dynamic var img = "" 41 42 // プライマリーキーの設定 43 override static func primaryKey() -> String? { 44 return "name" 45 } 46 func setval(item:[String]) { 47 self.name = item[0] 48 self.photo = item[1] 49 } 50}
swift
1let pic: [[String]] = [["ほげ", "hoge"], ["ほげほげ", "hogehoge"]] 2func makeList(realm: Realm) { 3 let item = List() 4 item.setval(item: pic) 5 try! realm.write { 6 realm.add(item) 7 } 8}
###補足情報(言語/FW/ツール等のバージョンなど)
Swift4.0 Xcode9.01
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。