23
Properties & Method about Swift 창원대학교 정보통신공학과 Mobile-X 정경원 지도교수 : 박동규 2015.1.20

Swift세미나(속성(properties), 메소드(method))

  • Upload
    -

  • View
    72

  • Download
    1

Embed Size (px)

Citation preview

Properties & Method about Swift

창원대학교 정보통신공학과 Mobile-X 정경원

지도교수 : 박동규 2015.1.20

목차

•저장 속성( Stored Properties)

• 연산 속성(Computed Properties)

• 메소드(Methods)

저장 속성(Stroed Properties)

• 특정 클래스와 구조체의 인스턴스에 저장되는 상수나 변수

• var 키워드로 선언되면 변수 저장 속성.

• let 키워드로 선언되면 상수 저장 속성.

저장 속성(Stroed Properties)

저장 속성(Stroed Properties)

구조체와 클래스의 차이점.

Lazy 저장 속성• lazy 저장속성은 이 속성이 처음으로 사용되어 질 때까지 초기화 되지 않음.

• 저장 속성 앞에 lazy를 써줌으로써 lazy저장속성을 표시.

• 반드시 var 키워드로 선언된 변수에만 적용가능.

• 상수는 항상 초기 값을 가져야 하기 때문에 상수 속성으로는 선언할 수 없다.

• 복잡한 클래스의 불필요한 인스턴스 생성을 피하기 위해, lazy 저장 속성의 사용이 유용함.

Lazy 저장 속성

연산 속성(Computed Properties)

• 저장속성, 클래스, 구조체, 열거형은 연산 속성을 정의할 수 있음

• 연산속성은 실제로 값을 저장하지는 않고, 다른 속성이나 값들을 간접적으로 접근하여 값을 조회하거나 수정할 수 있는 getter와 선택적인 setter를 제공.

연산 속성(Computed Properties)

Custom Property

연산 속성(Computed Properties)

연산속성의 setter에 새로운 값이 저장될 이름을 명시해 주지 않으면 자동으로 생성되는 기본값 newValue를 사용할 수 있다.

메소드(Method)

• 기존의 객체지향언어 메소드의 형태와 사용법이 매우 유사.

• dot( . )을 이용해 접근.

• 특정 클래스, 구조체, 혹은 열거형의 인스턴스에 속하는 함수

• 인스턴스 속성에 접근하고 수정하는 방법이나, 인스턴스의 용도에 관련된 기능을 지원.

인스턴스 메소드

외부 파라미터 명

• 함수에 있는 파라미터가 정확하게 어떤 의미를 가지는지 사용자가 명확하게 알 수 있도록 파라미터의 이름을 지어주는 것.

• 별명이라고 생각하면됨.

• 변수명 앞에 선언

• 함수 내에서 사용불가. 외부에서만 사용가능.

외부 파라미터 명

Shorthand 외부 파라미터 명

• 함수 파라미터에 외부파라미터를 사용하고, 그 외부파라미터명이 함수 내부에서도 그대로 사용되길 원한다면, 함수 파라미터명 앞에 해쉬심볼(#)을 써주면 된다.

• 즉, 외부파라미터명과 내부파라미터명을 따로 사용할 필요없이 하나의 이름으로 외부 내부에서 동시에 사용할 수 있도록 해주는 기능.

Shorthand 외부 파라미터 명

• 모든 인스턴스 타입은 인스턴스 자체와 동일한 self라는 명시적 프로퍼티를 가지고 있음.

• 이 명시적 self 프로퍼티는 자신이 속한 인스턴스 내에서 현재 인스턴스를 참조 하는데 사용.

• 인스턴스 메소드 파라미터와 인스턴스 속성의 프로퍼티가 동일한 이름을 가졌을 때 사용해서 구분.

• self는 다른 객체지향 언어에서 this와 같은 의미. 즉, 자기자신을 가리킴.

The Self Property

The Self Property

self가 없다면 x는 둘다 메소드 파라미터를 참조한다고 여김.

• 구조체와 열거형은 값타입이라서 인스턴스 생성후에는 메소드를 통해서 해당 인스턴스의 속성을 변경할 수 없는데 이를 가능하게 하는 방법.

• mutating이라는 키워드를 인스턴스 메소드 앞에 선언하게 되면 이 메소드를 통해서 속성 변경 가능.

Mutating

Mutating

함수 이름만으로 첫번째 인수값의 용도가 명확해지기 때문에 외부 파라미터에 대해서 정의 할 필요가 없다.

하지만 두 번째 인수는 메소드가 호출되었을때, 그 용도를 명확히 하기 위해서 외부파라미터 이름을 규정함.

Mutating

구조체 인스턴스가 상수 타입의 변수에 할당 될때는 mutating 을 사용 못함.

Thank you

참고 자료

• http://blog.naver.com/seotaji/220136040885

• http://blog.naver.com/seotaji/220134412908

• http://swift.leantra.kr/