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

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

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

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

Swift

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

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

Q&A

0回答

1085閲覧

Realm imageを配列に設置する RLMArrayの使い方

tsuji71

総合スコア17

Realm

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

Swift

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

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

0グッド

0クリップ

投稿2020/04/16 16:29

編集2020/04/18 04:08

実現したいこと
現在スライドショーアプリを作成しているのですが、複数のスライドショーを保存刷るためにRealmを導入しました
以前作ったスライドショーアプリは、

swift

1var imageArray:[UIImage] = []

のようにして、配列を作り、ここに画像を追加して

swift

1imageArray[0] 2```のように要素を取り出していました 3 4今回も同様に、 5```swift 6import RealmSwift 7 8class Task: Object { 9// 管理用ID 10 @objc dynamic var id = 0 11// タイトル 12 @objc dynamic var title = "" 13// collectionViewに表示する画像 14 @objc dynamic var images:[UIImage] = [] 15 16 override static func primaryKey() -> String? { 17 return "id" 18 } 19}

とすると、イメージ説明
エラーが発生します 

https://realm.io/docs/objc/latest/api/Classes/RLMObject.htmlを参考に試みたのですが、

swift

1// Dog.h 2@interface Dog : RLMObject 3@property NSString *name; 4@property BOOL adopted; 5@end 6 7// Dog.m 8@implementation Dog 9@end //none needed 10

をどこに書けばいいのかなどよくわかりませんでした

追記

class

1// 管理用ID 2 @objc dynamic var id = 0 3// タイトル 4 @objc dynamic var title = "" 5 // collectionViewに表示する画像 6 @objc dynamic var imageData:Data? = nil 7 8 override static func primaryKey() -> String? { 9 return "id" 10 } 11} 12コード

上記のようにTaskクラスを修正し、imageDataに画像を保存することに成功しました
これをArrayの代わりにListを使って配列のようにするということだと思うのですが、ここから先があまり理解できず、止まってしまっています

また、Realmに保存された画像dataをImage型に直してViewControllerに表示する際にもエラーが出てしまいます if文を用いてimageDataがnilの時は、処理をしないようにしているつもりなのですが、なぜエラーが出てしまうのでしょうか?エラーが出るタイミングはシュミレーターが起動した直後です

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

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

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

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

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

ch3cooh

2020/04/17 00:08

Realm-Swiftですと、https://realm.io/jp/docs/swift/latest/ に詳しく書かれていますが、`let dogs = List<Dog>()` のように書くことで配列を Realmへ格納することができます。 質問に書かれている配列は UIImage型の配列ですが、RealmではUIImage型は扱えないので、UIImageをData(JPEGやPNGへエンコード)してから格納することになります。 1. 複数のデータ保存には、Listオブジェクトを使う 2. UIImageをData型に変換して Realmに保存する で対応できるかと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問