[swift] 일반 변수를 서브젝트처럼 구독 가능하게 하는 프로퍼티 래퍼 SPM
담왕

Lv.1 담왕 (115.♡.4.50)

2025년 6월 27일 AM 11:49 · 수정됨(06. 30. 11:02)

조회 486 공감 0

사실 일반 변수처럼 보이지만 서브젝트가 되는 SPM 입니다 ㅎㅎ

var myValue:Int = 0

이런 변수선언 앞에


@CanSubscribe var myValue:Int = 0


이렇게 @CanSubscribe만 붙여주면


myValue = 1

someFunction(intValue: myValue)

print(myValue)

이렇게 그냥 변수 쓰듯 사용 가능하고


$ <- 요걸 앞에 붙이면

$myValue.sink {

    print(myValue)

}

.store($cancellable)

이렇게 구독도 가능합니다



그리고 주 기능은 아니지만..

일반 변수처럼 보이지만 서브젝트가 되는 방식이기 때문에

struct MyView : View {

    @CanSubscribe var myValue:[any] = []

    ...

}

이렇게 @State 가 아닌 변경가능한 변수로도 활용이 가능합니다

뷰모델 만들기 좀 그럴만큼 작은 뷰를 만들때는 의외로 쏠쏠해요

댓글 (1)

  • 집사C

    집사C Lv.1

    25.06.30 · 112.♡.133.131

    지식 공유 고맙습니다.

    {emo:damoang-emo-000.gif:100}

댓글을 작성하려면 이 필요합니다.