Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- Subject
- JSON
- swift database
- Subscribe
- Combine
- 네트워크 통신
- swift db
- observable
- xcode
- realm
- Tuist Swift
- Firebase
- uitableviewdiffabledatasource
- swift 5.9
- combinecocoa
- Firebase Analytics
- GCD
- arc
- swift 6
- ios
- ios database
- RxSwift
- ribs
- SwiftUI
- KeyPath
- Tuist
- 카카오뱅크 ios
- swift
- Swift Tuist
- SeSAC
Archives
- Today
- Total
천원의 개발
iOS Realm 데이터베이스 사용법 본문
오늘은 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])
}
'iOS&Swift🍎 > iOS' 카테고리의 다른 글
iOS 다크모드 지원 안하게 설정 (0) | 2022.08.28 |
---|---|
iOS tableView 구분 선 미리 그어두는 법 (0) | 2022.08.27 |
iOS 코드로 터치 이벤트 사용법 (0) | 2022.08.21 |
iOS HTTP 통신 허용 (0) | 2022.08.13 |
iOS 커스텀 폰트 사용법 (0) | 2022.08.11 |