[알쓸신잡] iPad에서 똑같은 앱을 동시에 실행하고 있을때, 참조 메모리를 공유할까?

유인호·2024년 1월 2일
0

알쓸신잡

목록 보기
8/20

SeceneDelegate과 AppDelegate를 공부하던 도중 의문이 들었다. 원래는 하나의 앱만 킬 수 있었는데, iOS13이후로 padOS로 분리가 되면서 동시에 앱을 킬 수 있게 되었다라는 사실을 알게 되었는데, 궁금한점은 뭐였냐면,

같은 앱을 동시에 켰을때 Class의 메모리를 공유하는지 궁금해졌다. 일단 그냥 class로 하고, 안되면 싱글톤패턴으로 실험을 진행할 예정이였다. 뷰는 매우 매우 간단하게 SwiftUI로 작성하였다.


실험 결과는?

!!!

작아서 잘 안보이지만, 양쪽에 같은 앱을 켜놓고 각 아무거나의 버튼을 눌러도 둘다 동시에 뷰가 리프레시 되면서 카운트가 올라가는걸 발견 할 수 있었다.


자매품

이건 안됨

+) 웃긴거 발견
StateObject로 뷰모델을 가져오면 안됨...

레퍼런스에서 한 문구를 봤는데, 상태 변경이 있을땐 @ObjervedObject는 뷰를 다시 생성해서 그리지만, @StateObject는 뷰를 다시 생성하지 않고 항상 동일한 뷰가 사용 (효율) 이라고 적힌 글을 봄.

그런데, 단순히 뷰를 리프레시 하지 않는거면, 왼쪽을 눌러서 1 0 이 되고, 오른쪽을 누르면 기존에 count가 있으니까 1 2가 되어야만 하는거 아닌가?


메모리 주소가 다름;

2편 : [iOS] ObservedObject, 그는 신인가?

profile
🍎Apple Developer Academy @ POSTECH 2nd, 🌱SeSAC iOS 4th

0개의 댓글