class / struct / enum
class : property와 function을 가질 수 있음, 초기화 함수, 상속, reference type(pointer) 전달
struct : property와 function을 가질 수 있음, 초기화 함수, value type 전달
enum : case 저장소, value type 전달
value VS reference 전달
value
copy.-> 즉 받는 변수의 타입까지 copy
var x = y ( : array )
x.append(val) // y에 반영되지 않음
let 변수에 할당한 경우 변경할 수 없음 ( 상수임 (immutable))
let x = y ( : array )x.append(val)
reference
같은 메모리를 바라봄.
Methods
Parameters Names
- internal name : 호출하는 함수 내에서 사용
- external name : 해당 메소드를 호출할 때 호출하는 Caller가 사용
만약, external name을 사용하고 싶지 않다면 언더바 ( ' _ ' ) 를 넣어주면 된다.
만약 함수의 첫 번째 파라미터라면 default로 언더바를 기본으로 넣어줌.
그 외의 모든 파라미터의 default는 internal name. 따라서 external name을 지정하지 않으면, 기본 값은 internal name
그러나, 첫 번째 이후의 파라미터에 대해 _ 로 internal name 을 지정하지 않는 것은 지양하라
Override
대상 : 함수, 프로퍼티 ( final 함수, final 프로퍼티 제외 )
**final property와 final func 는 서브클래싱(하위 클래스에서 오버라이드 등을 통해 수정하는 것) 할 수 없음
Property
Observe changes to any property ( with willSet and didSet )
해당 property 에 set 하기 전(willSet)과 후(didSet)에 호출 => update UI
Lazy Initializer
'Front End > iOS' 카테고리의 다른 글
swift memory, closure (0) | 2019.08.01 |
---|---|
Getting Started Develop iOS App (0) | 2019.07.15 |
IOS (0) | 2019.07.14 |
Swift (0) | 2019.07.03 |