15일차 - 21.06.22

수킴·2021년 6월 22일
0

100DaysOfSwift

목록 보기
16/37
post-thumbnail

학습키워드

  • review(복습) - 3

1. Properties

구조체와 클래스는 자체 변수와 상수를 가질 수 있으며, 이를 속성이라고 합니다.

내부의 속성을 사용하여 메서드를 사용할 수도 있습니다.

속성관찰자

  • didSet : 속성이 변경 된 후
    • oldValue : 변경되기전 속성값을 포함하기 때문에 호출할 수 있습니다.
  • willSet : 속성이 변경 되기 전
    • newValue 새로운 속성값을 포함하기 때문에 호출할 수 있습니다.

연산프로퍼티

struct Person {
    var age: Int

    var ageInDogYears: Int {
        get {
            return age * 7
        }
    }
}

var fan = Person(age: 25)
print(fan.ageInDogYears)
  • 데이터 읽기전용으로 사용하려는 경우 get {} 는 생략이 가능합니다.
var ageInDogYears: Int {
    return age * 7
}

2. Static properties and methods

static (정적)을 사용하면 타입의 인스턴스가 아니지만 속성과 메서드를 사용할 수 있습니다. 공유하는 값을 저장하여 의미있게 구성하는데 유용합니다.

3. Access control

접근제어자를 사용하여 구조체및 클래스 내부의 데이터 중 외부에 노출되어야 하는 것을 지정할 수 있습니다.

  • Public : 모든사람이 읽고 쓸수 있습니다.
  • Internal : 같은 프로젝트내에서만 읽고 쓸수 있습니다. 다른 사람이 사용할 수 있는 프레임워크로 코드를 제공하면 읽을 수 없습니다.
  • File Private : 타입과 동일한 파일에있는 경우에만 읽고 쓸수 있습니다.
  • Private : 가장 제한적인 옵션이며, 타입 또는 타입확장에 속하는 경우에만 읽고 쓸수 있습니다.

4. Polymorphism and typecasting

클래스는 상속이 가능합니다. 상속받은 클래스는 추가하고 싶은 경우 추가할 수 도있고 추가하고 싶지 않은 경우 아무것도 추가하지 않을 수 있습니다.

Polymorphism(다형성) : 객체지향 프로그래밍의 다형성은 주로 오버라이딩과 오버로딩을 의미

타입캐스팅 : 타입의 객체를 다른 타입으로 변환하는 것

  • as? : 옵셔널 캐스팅 (실패해도 앱 중단이 되지 않습니다.)
  • as! : 강제 캐스팅 (실패하면 앱이 중단됩니다.)

타입캐스팅은 알지못하는 타입을 알고있는 타입으로 변환할 때 사용하는 것입니다. 강제로 관계가없는 타입끼리 변환을 할 수 없습니다.

// MARK: - 정수를 문자열로 강제캐스팅은 불가능
let number = 5
let text = number as! String

// MARK: - 관계가 있는 타입으로 변경후 캐스팅
let number = 5
let text = String(number)
print(text)

5. Closures

클로저는 코드를 보유하는 변수로 생각할 수 있습니다.

클로저는 생성될 때 내부에서 사용될 값의 복사본을 가져옵니다.

클로저는 마지막 매개변수인 경우 매개변수를 제거하고 중괄호 안에 코드블록을 제공할 수 있습니다.

Swift 용어 해설 링크

링크

100 Days of Swift - Day 15 - Hacking with Swift

profile
iOS 공부 중 🧑🏻‍💻

0개의 댓글