IT アプリ開発

【Swift】Realmの導入方法とデータ書き込みと読み込み

2021年2月14日

目次
・ realmの導入
・ データ保存方法
・ データが保存されているか確認
・ データ取得方法

realmの導入

PodfileにRealmSwiftを記載
pod install
BellezaProject.xcworkspace
これで取り込みができる。

データ保存方法

以下のように記載することでデータの保存をすることができます。

import UIKit
import FSCalendar
import RealmSwift
import FirebaseAnalytics


// FSCalendarのコードに、protocolの箇所にDatasource、Delegate、DelegateAppearanceがある
class CalenderController: UIViewController, FSCalendarDataSource, FSCalendarDelegate,FSCalendarDelegateAppearance {

    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        // ==== Realmオブジェの初期化
        let realm = try! Realm()
        let person = Person(name: "yoshida", gender: "Male")
        print(person)
        // ==== 値を入れてRealmに保存してみる
        try! realm.write {
            realm.add(person)
        }
       
        print(Realm.Configuration.defaultConfiguration.fileURL as Any)
        
        let button = UIButton(frame: CGRect(x:100, y:100,width:view.frame.size.width/2, height:view.frame.size.height/2))
        button.addTarget(self, action: #selector(self.tapButton(_:)), for: UIControl.Event.touchUpInside)
        button.setTitle("ボタン", for: UIControl.State.normal)
  
        
        var timer:Timer = Timer()
        timer = Timer.scheduledTimer(timeInterval: 5.0,
                                                       target: self,
                                                       selector: #selector(self.changeView),
                                                       userInfo: nil,
                                                       repeats: false)
        let calendar = try! FSCalendar()
        calendar.delegate = self
        calendar.dataSource = self
        
        
        self.view.backgroundColor = UIColor.yellow
        self.view.addSubview(button)
        // Do any additional setup after loading the view.
    }

    @objc func tapButton(_ sender: UIButton){
        // Firebase Analyticsでカスタムイベント送信
        // tappedButtonというイベントを発生させる
        Analytics.logEvent("tappedButton", parameters: nil)
        print("ボタンがタップされました。")
    }
    
    @objc func changeView() {
        print("5秒")
    }
    
}



class Person: Object {
    @objc dynamic var name: String?
    @objc dynamic var gender: String?
    
    override init(name :String, gender: String){
        super.init()
        self.name = name
        self.gender = gender
        test()
    }
    // testでプロパティを作成する
    func test(){
        print(self.name!+"|"+self.gender!)
    }
}

Realmで保存したモバイルデータ

-IT, アプリ開発
-

© 2024 Yosshi Labo. Powered by AFFINGER5