MongoDB Realmをスマホアプリで使用したいのですが、解決できないエラーが出てしまい、2日間考えましたが解決しそうにありませんので、こちらで質問させていただきます。
###やりたいこと
公式チュートリアルを参考にして、ローカルでMongoDB Realmの呼び出しやデータの追加を簡単にしたいて、実行した際に本当に追加されているか等の確認のためにコンソールかシュミレーター上に表示させたい。
###問題
Property declares an opaque return type, but has no initializer expression from which to infer an underlying type
というエラーと、
Value of type 'LocalOnlyQsTask' has no member 'runLocalOnlyExample'
というエラーが出てしまいます。
###原因
Property declares an opaque return type, but has no initializer expression from which to infer an underlying type
初期化式をどこにどのように記載すれば良いのか分かりません。
少なくとも、公式チュートリアルにそのような記載はないように思います。
(ただ、見落としている可能性は大いにあります。)
Value of type 'LocalOnlyQsTask' has no member 'runLocalOnlyExample'
LocalOnlyQsTaskクラス内にrunLocalOnlyExampleを入れ込めば良いのですが、公式チュートリアルにはそのようには書いておりませんでした。
###ContentView.swift
Swift
1import SwiftUI 2 3struct ContentView: View { 4 let variable = LocalOnlyQsTask() 5 init() { 6 self.variable.runLocalOnlyExample() 7 } 8 var body: some View { 9 Text("Hello World") 10 } 11}
###LocalOnlyQsTask.swift
Swift
1import Foundation 2import RealmSwift 3import SwiftUI 4 5class LocalOnlyQsTask: Object { 6 @objc dynamic var name: String = "" 7 @objc dynamic var owner: String? 8 @objc dynamic var status: String = "" 9 10 convenience init(name: String) { 11 self.init() 12 self.name = name 13 } 14} 15 16func runLocalOnlyExample() { 17 let localRealm = try! Realm() 18 19 let task = LocalOnlyQsTask(name: "Do landry!") 20 try! localRealm.write { 21 localRealm.add(task) 22 } 23 24 let anotherTask = LocalOnlyQsTask(name: "App design") 25 try! localRealm.write { 26 localRealm.add(anotherTask) 27 } 28 29 let tasks = localRealm.objects(LocalOnlyQsTask.self) 30 print(tasks) 31} 32
丁寧にわかりやすくアドバイス頂けたら幸いです。
宜しくお願いいたします。
###追記
他クラスで関数を呼び出す方法を参考にして、ContentViewでrunLocalOnlyExample()を呼び出そうとしています。