apple/iOS, UIKit, Documentation

iOS 내가 보려고 기록하는 Realm 구조 설계 및 @escaping

lgvv 2022. 9. 2. 19:41

iOS 내가 보려고 기록하는 Realm 구조 설계 및 @escaping

 

내가 자주하는 실수를 기록하기 위해 작성

 

이번에 Realm 모델 설계를 변경하기로 결정했는데 Swift Concurreny 보다 클로저를 사용하기로 정함.


클로저에는 @escaping과 @nonescaping이 존재.

설계를 UML로 하는데, 간단하게 UML을 사용해서 Static이나 Property Wrapper는 어떻게 표현해야하는지 고민.

 

UML

static의 경우에는 밑줄로 표현한다고해서 우선 이렇게 작성

 

각 모델이 직접 마이그레이션을 책임지도록 설계

> 그래야 각 모델에 대한 변경사항이 한눈에 보여서 실수가 줄어듦

 

Realm!

 

 

코드 스크린샷

 

 

폴더구조

 

 

 

 

 

 

(참고)

https://jusung.github.io/Escaping-Closure/

 

[Swift] Escaping 클로저 (@escaping)

정의 Escaping 클로저는 클로저가 함수의 인자로 전달됐을 때, 함수의 실행이 종료된 후 실행되는 클로저 입니다. Non-Escaping 클로저는 이와 반대로 함수의 실행이 종료되기 전에 실행되는 클로저

jusung.github.io

https://github.com/BoilerSwift/Logger/blob/main/Sources/Logger/Logger.swift

 

GitHub - BoilerSwift/Logger

Contribute to BoilerSwift/Logger development by creating an account on GitHub.

github.com

https://pages.cs.wisc.edu/~hasti/cs302/examples/UMLdiagram.html

 

UML Class Diagrams

+Employee(String) +Employee(String, double) +getName():String +getEmployeeID():int +getPayRate():double +changeName(String):void +changePayRate(double):void +getNextID():int

pages.cs.wisc.edu