본문 바로가기

2022_iOS 앱 개발자 워크숍/1, Swift 문법 복습40

Swift : Enum [ 열거형 ] 정의 관련있는 데이터들이 멤버로 구성되어 있는 자료형 객체 - 원치 않는 값이 잘못 입력되는 것 방지 - 입력 받을 값이 한정되어 있을 때 - 특정 값 중 하나만 선택하게 할 때 ex) 색깔 ( 빨강,녹색,파랑 ) 성별 ( 남, 여) 열거형 정의 형식 enum 열겨형명{ // 열겨형 정의 } 열거형 예제 1 : 하나의 case 문에 멤버 나열 enum planet { case Mercury, Venus, Earth, Mars, Jupiter, Saturn, Uranus, Neptune } 열거형 예제 2 enum Compass{ case North case South case East case West } print(Compass.North) var direction = Compass.West direc.. 2022. 1. 8.
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.