Machineboy空
비컨별로 다른 화면 띄우기! 본문
A기기 - 비컨 역할
picker로 선택한 UUID로 비콘이 생성되도록 바꾸었다.
B기기 - 비컨 탐지기 역할
감지된 UUID에 따라 색이 바뀌도록 하였다.
마주한 문제
class에서 변경된 값을 view에서 알아차리지 못하여, 화면이 갱신되지 않는다.
beaconDetector Class에서 감지하는 값이 바뀔 때 마다 view의 색이 바뀌어야 한다.
원인 분석1) ObservedObject 선언이 잘못되었나?
beacon: view에서 바뀌는 값을 class 에 넘겨주는 구조였고
detactor: class에서 변경된 값을 view에서 읽어서 표시하는 구조
class 내부에 @Published 되는 값이 변경될 때 .onChange나 다른 모디파이어 사용 없이도
view는 알아서 갱신되어야 마땅한데 안된다.
@StateObject로 바꾸어도 안된다.
@ObservedObject, @StateObject 언제, 어떻게, 무엇을 사용해야 하는가?
@ObservedObject, @StateObject 깔끔하게 정리
velog.io
원인 분석2) 새로 만든 객체가 아닌 단 하나의 객체로 접근해야 하나?
뭔가 내가 변하고 있는 클래스에 접근을 못하는 건가 싶어서 싱글톤으로도 바꿔보고 여러가지 시도를 했다..
https://babbab2.tistory.com/66
Swift) 싱글톤 패턴(Singleton Pattern)
안녕하세요 :) 소들입니다 이번 포스팅에선 싱글톤 패턴이 무엇이고, Swift에선 어떻게 사용되는지에 대해 알아보려고 해요!!! 왜 네트워크 하다가 갑자기 SingleTon이냐 하면 내 마음임 모든 포스팅
babbab2.tistory.com
원인 분석 3)뭔가 유효한 UUID가 따로 있나?
좀 더 신호 세기가 세게 잡히는 UUID가 따로 있나? 해서 UUID마다 rssi값을 디버깅해봤다.
uuid에는 문제가 없다! 랜덤 생성하는 페이지에 들어가서 uuid를 모두 변경해보았으나 똑같다.
다만, 소문자로 설정할 경우 읽어올 때 대문자로 읽히더라!
결과적으로 무슨 문제였느냐...
@Publish해주는 값을 좀 더 꺼내줘야 하는 것이었다.
@Publish beacon을 해두고 아래값을 타고 타고 들어가니 왜인지 모르겠지만 특정값만 인식하더라..
내가 원하는 uuid까지 타고 들어가서 그 값을 @Publish로 바꿔주니 너무 인식이 잘된다..
이걸로 무얼 할 수 있느냐!
비콘의 UUID로 장소 바꿔가며 정지한 장소에서 해당 정보가 다르게 뜨는지 확인할 수 있다!
해결할 문제,
비콘이 서로 가까이 있을 때, 가장 가까운 것을 탐지하도록 해야하는데 이건 아직 부족한 듯!
'언어 > iOS' 카테고리의 다른 글
RealityKit의 Gesture를 살펴보자 - Pinch, Scale (0) | 2024.11.11 |
---|---|
비콘이 감지되면 버튼을 활성화 시키자! 여러 개의 비컨 감지 로직 (0) | 2024.11.03 |
아이폰 2대 간 거리 탐지하기, iBeacon (6) | 2024.10.31 |
CoreLocation speed를 이용해 현재 정지해 있는 상태인지 파악해보자! (5) | 2024.10.31 |
iBeacon이란? beacon과 iOS 디바이스 간 거리 감지! (3) | 2024.10.29 |