Todo 앱에서 DateFormatter 사용 관련 질문 드립니다.
289
5 asked
Todo 앱에서 DateFormatter 사용 관련 질문 드립니다.
질문이 3개 있습니다.
질문 1.
private let dateFormatter: DateFormatter = {
let formatter: DateFormatter = DateFormatter()
formatter.dateStyle = DateFormatter.Style.medium
formatter.timeStyle = DateFormatter.Style.short
return formatter
}()
에서
= 뒤의 {}() 코드 블록을 어떻게 이해하면 될까요?
강사님 말씀대로 이름 없는 함수인 클로져로 이해해 보려고 해도 아닌 것 같고
연산 프로퍼티의 게터도 아닌 거 같고…
대략적으로 {}의 코드가 DateFormatter 객체를 생성해서 반환하는 거 같은데
어떤 스위프트 문법에 의해서 가능한 건지 모르겠습니다.
질문 2.
여러 스위프트 코드를 보면 DateFormatter처럼 클래스 객체를 생성할 때 ClassName() 이런 식으로 생성하는 경우가 있던데
이런 기존 library 객체들의 디폴트 생성자를 찾아보려면 관련 문서는 어떻게 검색할 수 있을까요?
올려주신 학습자료랑 스위프트 개발자 문서를 봐도 이런 내용은 잘 못 찾겠어서 방법을 문의 드립니다.
자바 같은 경우에는 도큐먼트에 디폴트 생성자가 설명되어 있었던 거 같은데 비슷한 도큐먼트를 어떻게 찾는지 궁금합니다.
질문 3.
위 코드를 이해하려고 이것저것 바꿔보다가
private let dateFormatter: DateFormatter = {
let formatter: DateFormatter = DateFormatter()
formatter.dateStyle = DateFormatter.Style.medium
formatter.timeStyle = DateFormatter.Style.short
return formatter
}()
를 아래처럼 바꿔 보았습니다.
private let dateFormatter: DateFormatter = DateFormatter()
dateFormatter.dateStyle = DateFormatter.Style.medium
dateFormatter.timeStyle = DateFormatter.Style.short
그랬더니 두번째 줄에서
Consecutive declarations on a line must be separated by ;
라는 에러가 나더라고요
let을 var로도 고쳐봐도 똑같고…
스위프트의 클래스에서는 프로퍼티(dateFormatter)에 어떤 타입의 객체를 생성 할당 후 그 객체의 프로퍼티(dateFormatter.dateStyle)는 바로 세팅을 못 해주는 건가요?
그럼 강사님이 작성하신 코드처럼 밖에는 작성을 못 하는 건지 아니면 UITableViewController의 init()을 써야 되는 건지도 궁금합니다.
긴 질문 읽어주셔서 감사합니다.
답변 미리 감사 드립니다.
Answer 1
0
안녕하세요.
{ } 로 묶인 코드는 클로저가 맞습니다. 매개변수가 없는 클로저라고 생각하시면 됩니다. 뒤에 ()가 붙은 것은 클로저를 실행한다는 의미이고, 클로저가 실행되면 실행된 결과값, 즉, return 된 값이 dateFormatter 상수에 할당되는 것입니다.
`ClassName()`은 `ClassName.init()`의 축약형입니다(위의 클로저 실행히 사용한 ()과는 다릅니다). 그래서 클래스 정의 문서에 가셔서 init 이라는 항목을 찾아보시면 됩니다. Swift Language Guide에는 initializer라고 소개되어 있습니다.
세 번째 질문에 대해선 클로저 문법을 제대로 익혀보시면 자연스레 해결될 것 같습니다.
또 궁금한 점이 있으면 언제든 질문 남겨주세요 :)
강좌소개의 overview
0
370
1
configure 메소드의 DispatchQueue.main
0
342
1
prepareForReuse 사용 방법
0
620
1
화면이 야곰님처럼 로드되지 않아 질문드립니다.
0
375
2
버튼 이미지 크기가 조절이 안 되는데 어떤 부분을 조정해야 할까요?
0
2178
1
코드블록 10-3-5 에러
1
207
0
info에서 자동완성이 나오지 않는데 따로 설정을 해주어야 하는 부분인가요?
0
264
1
star buton
0
362
1
Singleton 관련 질문.
0
251
1
로컬 유저 노티피케이션에서 반복 주기 설정 방법 문의 드립니다.
0
532
0
Todo 앱에서 로컬 노티피케이션 해제 시 질문 드립니다.
0
352
1
ios13이 생기고 변경점 관련
0
204
1
8번 프로젝트
0
189
1
todo 앱에서 파일 저장 기능에 대한 질문입니다.
0
270
1
todo앱 User Notification에서 질문이 있습니다
0
437
1
9번 프로젝트 질문
1
278
2
9번 프로젝트 자료 질문
0
260
1
8번 프로젝트 > 도전과제 2번 질문
0
214
2
Todo 앱에서 일정 추가가 바로 반영되지 않습니다.
1
435
6
5번 프로젝트 - 나머지 화면 구성하기
1
192
1
웹브라우저 - 코드로 기능 구현하기
1
569
3
어시스던트에 매뉴얼이 없습니다.
0
254
1
제공된 코드블럭 파일
0
250
2
5번째 프로젝트 질문입니다
0
131
0

