• 카테고리

    질문 & 답변
  • 세부 분야

    모바일 앱 개발

  • 해결 여부

    미해결

스트링을 인트로 형변환이 안되고 Calendar.current.date의 매개변수에 다른 상수를 넣었는데 애러가 뜨네요

21.03.30 00:27 작성 조회수 99

0

@State private var startDate = Date() // 데이트피커로 변경가능

@State private var dDay: String = "100" //텍스트필드에서 숫자 변경가능

@State private var howManyDays: Int = Int(dDay) ?? 0 // 위 dDay를 Int로 형변환

var endDate = Calendar.current.date(byAdding: .day, value: howManyDays, to: startDate)

스타트데이트 기준으로 몇일 예를 들어 100 뒤를 계산해서 몇월 몇일인지 보여주는 아주 간단한 것을 연습하고 있는데 잘 안되네요...

답변 1

답변을 작성해보세요.

1

안녕하세요

endDate같은건 다른값에 의해서 값이 결정되는 property입니다.

이런건 get, set부분을 직접 만들어야 합니다.

아래와 같은 스타일로 get부분에 어떻게 값이 표현될지 로직을 추가하면 될 것 같습니다.

set 부분은 set할게 없으니 빈 로직으로 남겨두고요.

스타일을 차근차근 보시면 어렵지 않게 이해할 수 있을 것 같습니다.

struct ContentView: View {

    

    @State private var startDate = Date() // 데이트피커로 변경가능

    @State private var dDay: String = "5" //텍스트필드에서 숫자 변경가능

      

    var body: some View {

        let endDate = Binding<Date?> (

            get: { Calendar.current.date(byAdding: .day, value: Int(dDay) ?? 0, to: startDate) },

            set: { _ in }

        )

        VStack{

            Text($startDate.wrappedValue.description)

            Text(endDate.wrappedValue?.description ?? "")

        }

     }

}