천원의 개발

iOS Realm 데이터베이스 사용법 본문

iOS&Swift🍎/iOS

iOS Realm 데이터베이스 사용법

천 원 2022. 8. 24. 19:40

오늘은 Realm 사용법을 정리 해보겠습니다!

 

1. 테이블 생성

import RealmSwift

class UserInfo: Object {
    @Persisted var name: String
    @Persisted var nickName: String?
    @Persisted var gender: Bool
    
    //PK(Primary Key): Int, UUID, ObjectID
    @Persisted(primaryKey: true) var objectID: ObjectId
    
    convenience init(name: String, nickName: String, gender: Bool) {
        self.init()
        self.name = name
        self.nickName = nickName
        self.gender = gender
    }
    
}

여기서 Primary Key는 이름으로 설정 하면 중복이 발생 할 수 있으니 Realm에서 지원하는 ObjectId를 통해서 Primary Key를 설정 해 줍니다.

 

2. local Realm 열기

let localRealm = try! Realm()

위 코드를 통하여 localRealm을 열어 줍니다.

 

 

3.  객체 생성

let task = UserInfo(name: "김철수", nickName: "고래밥", gender: true)

try! localRealm.write {
    localRealm.add(task)
}

 

4.  테이블에 있는 모든 정보 받아오기

var tasks: Results<UserInfo>!

// 테이블의 모든 정보 받아오기
tasks = localRealm.objects(UserInfo.self) 
// sort를 활용하여 정렬하여 받아올 수 있다.
tasks = localRealm.objects(UserInfo.self).sorted(byKeyPath: "name", ascending: false) 
// filter를 활용하여 원하는 정보만 받아올 수 있다.
tasks = localRealm.objects(BoxOfficeInfo.self).filter("name == '김철수'")

 

5.  수정 하기

try! localRealm.write {
    //gender 전체를 false 로 수정
    tasks.setValue(false, forKey: "gender")
    //0번째 레코드의 이름을 수정
    tasks[0].name = "김민지"
}

 

6. 삭제하기

try! localRealm.write {
      localRealm.delete(tasks[0])
  }