본문 바로가기

2022_iOS 앱 개발자 워크숍63

Swift : Protocol 정의 = 특정 클래스와 관련없는 프로퍼티, 메서드 선언 집합 - 함수 정의는 없다. - 기능이나 속성에 대한 설계도 - 클래스(구조체, 열거형)에서 채택(adopt)하여 메서드를 구현 형식 class 자식:부모 { } - 부모 클래스는 하나만 상속, 뒤에오는 나머지는 프로토콜 - 클래스, 구조체, 열거형, extension에 프로토콜을 채택 할 수 있다 ( 상속은 클래스만 가능 ) ex) class 클래스명 : 부모명, 프로토콜1, 프로토콜2 { } - 부모가 없으면 바로 프로토콜 채택 가능 ex) calss 클래스명 : 프로토콜1, 프로토콜2 { } 프로토콜 정의 protocol 프로토콜명{ //프로퍼티명 //메서드 선언//메서드는 선언만 존재 } protocol 프로토콜명 : 프로토콜1, 프로토콜2{.. 2022. 1. 8.
Swift : 접근 제어 [ Access modifier ] 정의 = 접근 수정자, 액세스 수정자, 액세스 지정자 = 클래스, 메서드, 멤버의 접근 가능성을 설정하는 객체 지향 언어의 키워드 접근의 종류 Open 모듈의 모든 소스파일 내에서 사용할 수 있고, 정의한 모듈을 가져오는 다른 모듈의 소스파일에서도 사용할 수 있다. [ Open 접근은 클래스 및 클래스 멤버에만 적용할 수 있다. ] Public 모듈의 모든 소스파일 내에서 사용할 수 있고, 정의한 모듈을 가져오는 다른 모듈의 소스파일에서도 사용할 수 있다. Internal 해당 모듈의 모든 소스파일 내에서 사용하지만 해당 모듈 외부의 소스파일에서는 사용할 수 없다. fileprivate 해당소스 파일 내에서만 사용 가능 private 블록과 동일한 파일에 있는 해당 선언의 extension으로 제한 특징.. 2022. 1. 7.
Swift : Extension - 클래스, 구조체, 열거형, 프로토콜에 새로운 기능을 추가 - 자식 클래스를 생성하거나 참조하지 않고 기존 클래스에 메소드, 생성자, 계산 프로퍼티 등의 기능을 추가하기 위해 사용 형식 extension 기존타입이름 { // 새로운 기능 } 예제 1 extension Double{ var squared : Double { return self*self } } let A = 1.47 print(A.squared) print(2.0.squared) 실행결과 // 2.1609 // 4.0 예제 2 extension Double{ var squared : Double { return self*self } } let A = 1.47 print(A.squared) print(2.0.squared) 실행결과 // .. 2022. 1. 7.
Swift : Override override = 부모클래스와 자식클래스에 똑같은 이름의 똑같은 리턴형을 가진 함수가 동시에 있을 때, 자식클래스의 함수를 우선적으로 사용한다는 의미이다. 예제 - 같은 소스코드에서 자식클래스의 함수 앞에 override의 유무를 통해 결과의 차이를 확인할 수 있다. class Man{ var age : Int = 24 var weight : Double = 73.2 func display(){ print("나이=\(age), 몸무게=\(weight)") } init(age: Int, weight: Double){ self.age = age self.weight = weight } } class Student : Man { var name : String = "SeaGreen" override func.. 2022. 1. 7.
Swift : Super Super는 자식클래스에서 부모클래스를 호출 할 때 사용한다. 예제 class Man{// 부모클래스 var age : Int = 24 var weight : Double = 73.2 func display(){ print("나이=\(age), 몸무게=\(weight)") } init(age: Int, weight: Double){ self.age = age self.weight = weight } } class Student : Man {// 자식클래스 var name : String = "SeaGreen" func displayS(){ print("이름=\(name), 나이=\(age), 몸무게=\(weight)") } init(ageS: Int, weightS: Double, name: String.. 2022. 1. 7.
Swift : 상속 SuperClass : 부모 클래스, 상위 클래스 ↑ SubClass : 자식 클래스, 하위 클래스 특징 - 상속된 클래스는 부모 클래스의 모든 기능을 상속 받으며, 자신만의 기능을 추가 할 수 있다. - 단일 상속 : Swift에서 하위 클래스는 단 하나의 부모 클래스만 상속 받을 수 있다. 형식 - 부모 클래스 뒤에 콜론이 있고, 콜론 다음에 여러 개의 무언가가 있으면 부모 클래스를 제외한 나머지는 프로토콜. ex ) class 클래스명 : 부모명, 프로토콜명1, 프로토콜명2 { } - 부모클래스가 없으면 프로토콜명을 바로 표기 할 수 있다. ex ) class 클래스명 : 프로토콜명 { } - 상속은 클래스만 가능하다. - 클래스, 구조체, 열거형, extension에 프로토콜을 채택 할 수 있다... 2022. 1. 7.