参考までに、モデル定義のコードを以下に示します。2.データの更新2.1.データ更新の基本データの更新例2-2.クエリ結果に対する更新クエリ結果に対する更新例2-3.setValueメソッドを使用した更新3.データの削除3-1.クエリ結果の削除クエリ結果を使用したデータの削除例3-2.リレーションのあるデータの削除TeamPlayer1:Nのデータを削除する例3-3.全データの削除deleteAllメソッドを使用したデータの削除例4.Realmファイルの削除Realmファイルの削除はじめに前回はRealmにおけるクエリについて説明をしました。第5回目となる今回は、既存データの更新と削除をする方法について説明します。過去記事は以下を参照ください。前回と同様に、選手を表すPlayerモデルがある前提で説明をします。参考までに、モデル定義のコードを以下に示します。addメソッドでデータを追加することを説明しました。モデル定義から作成したインスタンスは、addメソッドを実行する手前までは「アンマネージドオブジェクト」と呼ばれ、通常のクラスと同様にプロパティの値を何度でも変更することができます。addメソッド実行後は「マネージドオブジェクト」になるため、プロパティの値を変更しようとすると例外が発生してしまいます。データの更新は、writeトランザクションの中で、直接プロパティ値を変更します。以下にデータを更新する例を示します。次にクエリ結果に対する更新方法について確認しましょう。クエリについては、前回の記事「4.クエリによるデータの取得」を参照してください。クエリを実行すると、Resultsクラスのインスタンスが返されます。このResultsクラスのインスタンスが持つプロパティを、writeトランザクション内で変更することで更新をすることができます。Jordan」のデータを取得して、writeトランザクションの中で「Jordan」に更新しています。"Jordan"}2-3.setValueメソッドを使用した更新データの更新は、setValueメソッドを使用して行うこともできます。setValueメソッドの書式を以下に示します。"プロパティ名")「2-2.クエリ結果の更新」で示した例をsetValueメソッドに書き換えた例を以下に示します。"name")}スポンサーリンク3.データの削除データを削除するには、deleteメソッドかdeleteAllメソッドを使用します。メソッドを使用します。オブジェクト)を渡します。以下に、クエリ結果を使用したデータの削除例を示します。Jordan」であるレコードを削除します。メソッドで行うことができます。TeamモデルとPlayerモデルがあるとします。このモデルは、Teamが1に対してPlayerがNという関係にあるモデルです。Bullsというチームに3人の選手が登録されていると仮定します。61.2上記のモデルから、Bullsの選手’HIRO’を削除するには、以下の手順を踏みます。チームBullsを取得する1で取得したオブジェクトに対して、クエリで選手「HIRO」を取得する2.で取得したオブジェクトをdeleteメソッドで削除する以下にコード例を示します。全てのデータを削除するには、deleteAllメソッドを使用します。ここでいう全てのデータとは、Realmファイル内に登録されている全てのデータを指します。リレーションの有無に関わらず全てのデータを削除します。Realmファイル自体は残ります。以下に、deleteAllメソッドによるデータの削除例を示します。realm.deleteAll()}スポンサーリンク4.Realmファイルの削除Realmに登録されたデータではなく、Realmファイルそのものを削除するには以下のコードを実行します。Controllerを使用する方法をみていきます。本記事のサンプルは以下に置いておきます。ハンバーガーメニューは、様々な作成方法があります。iOSアプリ用の設定画面を作成するには、TableViewを使用するのが一般的です。TableViewを利用するには覚えることも多く、1ページ作成するだけでも結構大変です。本サイトのアクセスログを見ると、Swiftで使用できるデータベースフレームワーク「Realm」の記事への参照が多いようです。そこで、もっと詳細な説明を加えた、Swif4向けの完全保存版を作成することとしました。今回は、EurekaライブラリのSegmentedRowを使用する方法を説明します。作成するサンプルは以下の通りです。SegmentedRowは複数の選択項目の中から1つの項目を選択できるようにするUI部品です。本ブログに「Eurekaのリストの開始位置の変更方法を知りたい」とのコメントをいただきましたので調査しました。コメントをキャンセルメールアドレスが公開されることはありません。コメントデータの処理方法の詳細はこちらをご覧ください。メタ情報ログイン投稿フィードコメントフィードWordPress.orgタイトルとURLをコピーしました。