override func viewDidLoad에서 클래스를 선언할 때 let을 써야만 하는 까닭?
348
작성한 질문수 3
도서관리 앱을 만드는 강좌를 보다가 질문드립니다. 클래스로부터 객체를 생성할 때, var가 아닌 let을 써야만 하는 까닭이 잘 이해되지 않습니다. let으로 객체를 상수로 선언한 뒤에 객체 속성을 지정하는 과정이 있다면, immutable object에 값을 할당하는 것처럼 보이지만 여전히 구문상 오류 메시지는 뜨지 않는다는 게 신기합니다. 객체를 상수로 선언하는 것은 단지 객체 인스턴스가 사용할 메모리 공간을 확보하고, 객체의 인스턴스에 할당된 레퍼런스 ID를 상수로 지정하는 것이다…로 이해하면 되나요?
답변 2
0
변수로 선언해도 상관 없습니다. 하지만 코딩이 다 하시고 Xcode에서 변수를 써서 할당했는데 값이 한번도 변하지 않는게 있다면, let로 바꾸라고 recommend 해줄꺼예요. 상수란 ibook에 “Use let to make a constant and var to make a variable. The value of a constant doesn’t need to be known at compile time, but you must assign it a value exactly once. This means you can use constants to name a value that you determine once but use in many places.” 요렇게 나와 있습니다. 이런 정의는 아시자나요. 상수는 한번 값이 정의 되면 바뀌지 않는 값이다. 근데 개발자 마다 상수를 많이 쓰는 사람도 있고 잘 안쓰는 사람도 있고 그래요. 제가 예전에 외국 사이트에서 본 얘기중 "상수쓰지 말고 그냥 변수에 할당하고 값을 한번도 다시 할당 하지 않는게 더 나을수도 있다" 란 얘기도 본적이 있어요. 이런건 개발자 스타일 입니다. 근데 Xcode는 이런걸 안 좋아 하더군요. 생각해보면 변하지 않는 값인데 변수로 할당해 버리면 혹시 모를 잘못된 코딩으로 값이 변경되어 버리면 문제가 되겠죠. Swift가 처음 나왔을때 애플에서 강조 했던 3가지가 power, modern, safe였어요. 변수를 상수를 바꾸는 거는 이 safe 부분에 기반한거 같습니다. 안전한 코드를 만들기 위해서 말이죠. 최대한 엄격하게 만드는 거죠.
swift 버전관련
0
348
1
Type 'Any' has no subscript members 에러 때문에 컴파일 안 돼요 어떻게 해야 돼요?
0
339
1
미니 웹브라우저 5강 마지막에 적어주신 urlrequest 가 안먹어요..
0
400
1
delegate 함수를 iboutlet,action 밑으로 내려 놓으면 왜 실행이 안되나요?
0
505
2
external과 local parameter를 구분지어 놓은 이유는 무엇인가요?
0
246
1
class 실습에서 class 선언시
0
280
1
mutable array 공부중에요..
0
217
1
두 가지 질문이 있습니다.
0
290
1
126강에서 다룬 메인스레드와 백그라운드 스레드에 대해서 좀 더 자세히 설명해주실 수 있나요?
0
303
1
형변환 할 때 사용하는 as!와 as?의 차이점이 무엇인가요?
0
365
2
json 파싱에서 datalist["weatherinfo"]!["local"]!!.count에서 unwrapping을 두 번하는 부분이 이해가 잘 안 됩니다.
0
265
1
인텔리전스 키가 안먹히는데요...
0
263
1
스토리보드에서 작업할 때 나중에 넣은 오브젝트를 먼저 넣은 것 뒤로 보낼 수 없나요?
0
277
1
auto-layout에 관하여
0
275
2
키보드 위에 버튼이 나오게 하는 것은 어떻게 하나요?
0
1205
3
DigitalFrame 연습하다가 "unexpectedly found nil while unwrapping an Optional value"라는 에러가 나왔습니다.
0
474
3
GoBack, GoForward로 페이지를 이동하면 urlTextField에 나오는 주소가 바뀌지 않습니다.
0
176
1
웹뷰를 끌어다 놔도 연결이 안되네요
0
193
1
시뮬레이션 해보면 아래쪽에 흰 여백이 나오는데 왜 이런 것인가요?
0
219
3
imgView.animationImages = cuteImages
0
214
1
delegate pattern을 이용해서 이벤트를 처리한다고 할 때 패턴은 무슨 말인가요?
0
196
1
UIActivityIndicatorView 부분을 코딩하고 문제가 발생하였습니다.
0
137
0
0x1002e835c <+160>: brk #0x1 Thread 1: EXC_BREAKPOINT (code = 1, subcode=0x1002e835c)
0
417
1
문서에 대한 설명을 주시는데요...
0
265
3





