質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Realm

RealmとはSQLiteやCore Dataに代わるモバイルデータベースです。iOSとAndroidの両方でサポートされています。

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

解決済

1回答

3119閲覧

swift realmから要素を順番に抜き出してcollectionViewのLabelやUIImage(named:)に代入したい

退会済みユーザー

退会済みユーザー

総合スコア0

Realm

RealmとはSQLiteやCore Dataに代わるモバイルデータベースです。iOSとAndroidの両方でサポートされています。

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

0クリップ

投稿2017/11/02 05:30

編集2017/11/02 05:35

###前提・実現したいこと
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

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

swift

1var returnDB: Results<List>?{ 2 let realm = try! Realm() 3 return realm.objects(List.self) 4}

swift

1let itemNum = returnDB?[indexPath.row] 2Label.text = (itemNum?.name)!

で実現できました

投稿2017/11/03 12:22

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問