본문 바로가기

Swift랑 친해지기/Swift문법정리62

[Swift] assert(_:):file:line:) assert메서드 특정 조건을 확인하고, 조건이 성립하지 않으면 메세지를 출력할 수 있는 함수 디버깅 중 조건의 검증의 위하여 사용하고 디버깅 모드에서만 동작함 condition - 조건확인 message - 메세지 출력 file - assert가 실패할 경우 인쇄할 파일 이름 line - asser가 실패할 경우 함께 인쇄할 줄 번호 입니다. assert의 첫번째 메서드 조건 - nickname assert의 두번째 메서드 메세지출력 - "개발자유망주가 아닙니다" nickname의 값을 긍정King으로 변경해주면 콘솔창에 fail message가 뜨며 메세지가 뜨는 것을 볼 수 있음 아래쪽에 기본값으로 호출되는 file과 line도 출력되는 것을 볼 수 있음 2022. 9. 21.
[Swift] 타입캐스팅 (is, as, as?, as!) 타입 캐스팅 인스턴스의 타입을 확인하거나 어떠한 클래스의 인스턴스를 해당 클래스 계층 구조의 슈퍼 클래스나 서브 클래스로 취급하는 방법 is 연산자 런타임 시점에 값의 타입을 확인하여 Bool타입으로 반환 import Foundation class Brand{ var name: String init(name: String){ self.name = name } } class Sports: Brand{ var founder: String //설립자 init(name: String, founder: String) { self.founder = founder super.init(name: name) } } class Music: Brand{ var artist: String init(name: String, a.. 2022. 9. 20.
[Swift] 클래스 vs 구조체 (class vs struct) 공통점 값을 저장할 프로퍼티 선언할 수 있음 함수적 기능을 하는 메서드를 선언할 수 있음 extension을 사용하여 기능 확장할 수 있음 Protocol을 채택하여 기능을 설정할 수 있음 .을 이용해 내부값에 접근 생성자를 사용해 초기 상태 설정 차이점 Struct Class 클래스 구조체 참조타입 값타입 같은 클래스 인스턴스에 여러개의 변수를 할당하게 되면 하나의 인스턴스를 가리키는 메모리 주소만 복사되어서 같은 클래스의 인스턴스를 여러개 할당한 뒤 값을 변경시키면 모든변수에 영향을 줌 같은 구조체를 여러개의 변수에 할당한 뒤 값을 변경시키더라도 다른 변수에 영향을 주지 않음(값 자체를 복사) 상속이 가능 상속 불가능 타입 캐스팅을 통해 런타임에서 클래스 인스턴스의 타입을 확인 할 수 있음 변수를 할.. 2022. 9. 19.
[Swift] 프로퍼티(Properties) 프로퍼티란? 클래스, 구조체, 열거형 등에 값을 할당하는 것을 뜻함 1. 저장프로퍼티 - 변수나 상수를 클래스나 구조체의 일부분으로 저장하는 것 - 구조체, 클래스에서 사용가능 Struct 경우 Person구조체를 인스턴스화 해보겠음 이처럼 인스턴스에 프로퍼티의 값이 저장되는 것을 저장프로퍼티라고함 age를 let으로 선언했기 때문에 변경불가 인스턴스를 생성할때 변수로 people2를 생성하고 값을 변경하고 싶다고 해서 막 바꾸게 되면 ?? 에러남 이유는 구조체는 값타입이기 때문에 저장 프로퍼티들이 Stack영역에 올라가 인스턴스를 let으로 선언하는 순간 구조체의 모든 멤버를 변경불가 구조체 인스턴스를 상수로 선언하면 내부 프로퍼티도 모두 상수가 되어 수정 불가 Class 경우 class 는 참조 타입.. 2022. 9. 19.