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

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

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

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

Swift

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

Q&A

解決済

1回答

805閲覧

Swiftにてrealmデータベースの更新を行う方法

yamadayeah90

総合スコア6

Realm

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

Swift

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

0グッド

0クリップ

投稿2022/04/11 01:46

開発環境

MacOS(macOS Monterey12.0.1)、Xcode(13.1)、swift(5.5.1)
実行環境 シミュレーション(iPhone12pro)

クエリは画面のソースとは別にクラス専用のファイルを作成して画面からクラスメソッドを呼び出して処理を行うようにしています。

上記環境にて指定したI Dのデータに対して指定したデータの更新を行おうとすると、下記のエラーが表示されます。
インスタンスの生成の仕方が悪いのでしょうか?
ちなみに下記のリンクの内容を参考にしてクエリーを作成しました。
参考サイト

エラー内容

Value of type 'Results<user>' has no member '指定したデータのオブジェクト'

エンティティ

swift

1// 2// parsonal.swift 3// myaccount 4 5 6import Foundation 7import RealmSwift 8 9 10//ユーザ情報クラス 11class user: Object { 12 //ユーザID 13 @objc dynamic var id:String = ""; 14 //パスワード 15 @objc dynamic var pass:String = ""; 16 //アプリ内のニックネーム 17 @objc dynamic var name:String = ""; 18 //年齢 19 @objc dynamic var age:String = ""; 20 //性別 21 @objc dynamic var sex:Int8 = 0; 22 //家賃 23 @objc dynamic var home:Int8 = 0; 24 //電気 25 @objc dynamic var elec:Int8 = 0; 26 //水道代 27 @objc dynamic var water:Int8 = 0; 28 //ガス 29 @objc dynamic var gas:Int8 = 0; 30 //通信料(ケータイ代等) 31 @objc dynamic var com:Int8 = 0; 32 //保険料 33 @objc dynamic var insure:Int8 = 0; 34 //サブスク 35 @objc dynamic var subsc:Int8 = 0; 36 37} 38 39 40 41今回のデータの更新クエリとしては、配列型を引数としてメソッドに渡して更新クエリを実行するという方法になります。 42 43**データ更新クエリ** 44 45```swift 46 //入力した費用情報を更新するメソッド 47 class func PriceUpdate(getresults:Array<Int8>) -> Int { 48 let realm = try! Realm() 49 let targets = realm.objects(user.self).filter("id == %@",g_id) 50 do{ 51 try realm.write{ 52 targets.home = 0 53 targets.elec = 0 54 targets.water = 0 55 targets.gas = 0 56 targets.com = 0 57 targets.insure = 0 58 targets.subsc = 0 59 } 60 }catch { 61 print("Error \(error)") 62 } 63 return 0 64 } 65

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

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

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

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

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

guest

回答1

0

ベストアンサー

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

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

yamadayeah90

2022/04/12 10:26 編集

class func PriceUpdate(getresults:Array<Int8>) -> Int { let realm = try! Realm() let targets = realm.objects(user.self).filter("id == %@",g_id) do{ try realm.write{ var counter:Int = 0 for vlaue in targets{ targets.home = 0 }  エラー表示部分 } }catch { print("Error \(error)") } return 0 } 上記のfor文に編集してもエラー表示部分に下記のエラーが起こってしまいます。 Value of type 'Results<user>' has no member 'home'
5ugarVVatch1ng

2022/04/12 10:43

targetsの要素を更新したいので targets.home = 0ではなく vlaue.home = 0だと思います。
yamadayeah90

2022/04/12 23:57

class func PriceUpdate(getresults:Array<Int8>) -> Int { let realm = try! Realm() let targets = realm.objects(user.self).filter("id == %@",g_id) do{ try realm.write{ var counter:Int = 0 for vlaue in targets{ value.home = 0 } → homeの部分 } }catch { print("Error \(error)") } return 0 } 回答ありがとうございます。全体のエラーは解消されたのですが、上記コードの→部分にて下記のエラーが表示されます。 意味も理由もわからないのですが、解決策はありますか? 何度もすいません。 Reference to member 'home' cannot be resolved without a contextual type
5ugarVVatch1ng

2022/04/14 08:51

すみませんが、分からないです…
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問