일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Apple
- 한글
- Xcode
- mac
- rxswift
- view
- Python
- Firebase
- stack
- Realm
- iOS16
- 개발자
- JPA
- Archive
- window
- UIButton
- IOS
- FLUTTER
- Code
- 웹뷰
- Session
- MacOS
- darkmode
- Swift
- appstore
- Notification
- Git
- SwiftUI
- error
- github
- Today
- Total
목록Realm (4)
EEYatHo 앱 깎는 이야기
일반적인 값들의 마이그레이션 방법 Realm 클래스를 마이그레이션 할 때, oldObject의 값에 접근하기 위해서는, 아래처럼 oldObject의 string 키값으로 접근하는 것이 일반적일텐데, 해당 방법으로는 List 값에는 접근이 안된다. ( firstName과 lastName을 더해서 fullName이라는 값을 추가하는. List가 필요없는 케이스는 잘 됨. ) migrationBlock: { migration, oldSchemaVersion in if oldSchemaVersion < 1 { migration.enumerateObjects(ofType: Person.className()) { oldObject, newObject in guard let oldObject = oldObject e..
Realm에는 Swift의 Array를 사용할 수 없습니다. Swift의 Array는 Realm의 Object를 상속하지 않기 때문입니다. 해결 방법으로, Realm에서 제공하는 List라는 데이터형을 활용하면 됩니다. Realm List 활용한 예시 코드 Swift에서 사용할 때는 Array이고, Realm 내부적으로는 List인 인터페이스 입니다. class MyModel: Object { .... // 원하는 데이터가 String 이라고 가정했을 때, let dataList: List = List() var dataArray: [String] { get { return dataList.map{$0} } set { dataList.removeAll() dataList.append(objectsIn: ..
Realm github 링크 NoSQL 데이터베이스 UserDefaults, CoreData 같은 로컬 DB 무료인데, 빠르고, 사용하기 쉽다 안드로이드나 Flutter 같은 다른 플랫폼과의 DB 공유도 가능 설치법 SPM, CocoPods, Carthage 모두 가능하다. 설치 방법 링크 사용법 모델 선언 import RealmSwift class Alert: Object { @objc dynamic var idx: Int = 0 @objc dynamic var time: String = "00:00" @objc dynamic var isOn: Bool = false convenience init(time: String) { self.init() self.time = time } } primary ke..
Realm을 처음 사용하면서, 객체를 참조하기만 해도 Realm에 접근하게 되며, 접근시 메인쓰레드가 아니면 안된다는 것을 알았습니다. class NotificationManager { ... func getAuthoState(enableHandler: (() -> ())? = nil, disableHandler: (() -> ())? = nil ) { UNUserNotificationCenter.current().getNotificationSettings { settings in switch settings.alertSetting { case .enabled: // 알림 권한이 있으면 enableHandler 실행 if let enableHandler = enableHandler { enableHand..