티스토리 뷰
프로젝트를 생성하고 pod을 가져와서 사용하는 방법까지는 설명하지 않도록 할게요.
대신에 이 곳에 설명이 아주 잘되어 있으므로 참고해봅시다.
docs.mongodb.com/realm-legacy/docs/swift/latest/
Realm: Create reactive mobile apps in a fraction of the time
Oops something went wrong You will not be receiving an email shortly with details
docs.mongodb.com
그리고 사용 방법은 간단합니다.
이 기능을 사용하여야 하는 파일의 상단에 import를 추가합니다.
import RealmSwift
보기 편하게 저는 write와 read를 만들거에요.
private func write() {
guard let realm = try? Realm() else { return }
let person = Person()
person.name = "outofcoding"
person.address = "Korea"
try? realm.write {
realm.add(person)
}
}
이렇게 하면 넣고 싶은 데이터를 넣습니다. 이게 끝입니다. ㅎㅎ
그럼 read도 넣어 볼게요.
private func read() {
guard let realm = try? Realm() else { return }
let models = realm.objects(Person.self)
for model in models {
print(model.name, model.address)
}
}
이 예제는 간단하게 들어간 값들을 다 불러오는 것입니다.
조건문을 붙여서 가져와서 사용하는 방법도 있는데 위에 적어드린 Realm 주소에 가서 document를 참조하시면 많은걸 얻으실수 있을거에요.
그럼 전체 내용은 어떨까요?
import UIKit
import RealmSwift
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
write()
read()
}
private func write() {
guard let realm = try? Realm() else { return }
let person = Person()
person.name = "outofcoding"
person.address = "Korea"
try? realm.write {
realm.add(person)
}
}
private func read() {
guard let realm = try? Realm() else { return }
let models = realm.objects(Person.self)
for model in models {
print(model.name, model.address)
}
}
}
@objcMembers
class Person: Object {
dynamic var name = ""
dynamic var address = ""
}
이것에서 취향적으로 다를게 있기는 합니다.
Person class를 만드는 방법인데요. Realm은 변수 자체가 @objc dynamic 이어야 합니다.
이것은 dynamic dispatch 관련된 부분으로 접근해서 값을 가져오게 만드는것이라 다른 글에서 참조 바라고요.
class Person: Object {
@objc dynamic var name = ""
@objc dynamic var address = ""
}
때에 따라서는 위와 같이 @objc를 바로 붙여서 사용하여도 됩니다.
한번에 다 objcMember로 만들고 싶다면 class 자체를 @objcMembers로 넣어도 되고요.
예제는 프로젝트로 올려두었습니다.
github에서 받아서 하시면 되고요. pod install 하고 실행하시길 바랍니다.
github.com/outofcode-example/iOS-RealmDemo
outofcode-example/iOS-RealmDemo
Contribute to outofcode-example/iOS-RealmDemo development by creating an account on GitHub.
github.com
'Mobile > iOS' 카테고리의 다른 글
iOS - Swift. Property Wrappers (0) | 2023.02.06 |
---|---|
iOS. UICollectionView로 Header만들고 Stretch 동작하도록 만들기 (0) | 2021.05.16 |
Swift. Method Swizzle. (0) | 2021.01.03 |
Swift. @dynamicMemberLookup (0) | 2021.01.03 |
RxSwift, RxCocoa. Publish (0) | 2021.01.03 |
- Total
- Today
- Yesterday
- war
- ubuntu
- centos8
- php
- windows10
- SWIFT
- Spring
- MySQL
- Windows
- intellij
- Linux
- enum
- ios
- Gradle
- Xcode
- android
- Java
- tomcat
- golang
- nodejs
- docker
- CentOS
- cocoapods
- rxswift
- Codable
- go
- github
- Python
- git
- Kotlin
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |