본문 바로가기

assert와 guard assert와 guard애플리케이션이 동작 도중에 생성하는 다양한 연산 결과값을 동적으로 확인하고 안전하게 처리할 수 있도록 확인하고 빠르게 처리할 수 있습니다. 소스코드 Assertionassert(_:_:file:line:) 함수를 사용합니다. assert 함수는 디버깅 모드에서만 동작합니다. 배포하는 애플리케이션에서는 제외됩니다. 주로 디버깅 중 조건의 검증을 위하여 사용합니다.var someInt: Int = 0 // 검증 조건에 부합하므로 지나갑니다 assert(someInt == 0, "someInt != 0") someInt = 1 //assert(someInt == 0) // 동작 중지, 검증 실패 //assert(someInt == 0, "someInt != 0") // 동작 중지, 검증.. 더보기
사진 게시판 API 만들기 [2] Perfect 미니 프로젝트 [2] 1. 서버 객체 생성 및 라우팅 2. mongoDB 연결하기 본격적으로 API 서버 만들기에 돌입합니다!! 참고2017년 7월 현재 Swift 3 / Perfect 최신버전 2.0.x 환경에서 진행함을 알려드립니다. * Swift 최신 버전 확인(https://github.com/apple/swift/releases) * Perfect 최신 버전 확인(https://github.com/PerfectlySoft/Perfect/releases) 서버 객체 생성 및 라우팅 서버 객체와 라우팅에 대한 설명은 지난 글에서 했으므로, 작성한 코드만 설명합니다. 2017/05/24 - [Swift/Perfect] - Perfect 라우팅 우선, 프로젝트 폴더의 Sources폴더의 .. 더보기
타입캐스팅 타입캐스팅스위프트의 타입캐스팅은 인스턴스의 타입을 확인하는 용도 또는 클래스의 인스턴스를 부모 혹은 자식 클래스의 타입으로 사용할 수 있는지 확인하는 용도로 사용합니다. is, as를 사용합니다. 소스코드 타입 캐스팅 예제를 위한 클래스 정의class Person { var name: String = "" func breath() { print("숨을 쉽니다") } } class Student: Person { var school: String = "" func goToSchool() { print("등교를 합니다") } } class UniversityStudent: Student { var major: String = "" func goToMT() { print("멤버쉽 트레이닝을 갑니다 신남!") .. 더보기
옵셔널 체이닝 옵셔널 체이닝 옵셔널 체이닝은 옵셔널의 내부의 내부의 내부로 옵셔널이 연결되어 있을 때 유용하게 활용할 수 있습니다. 매 번 nil 확인을 하지 않고 최종적으로 원하는 값이 있는지 없는지 확인할 수 있습니다. 소스코드 예제 클래스class Person { var name: String var job: String? var home: Apartment? init(name: String) { self.name = name } } class Apartment { var buildingNumber: String var roomNumber: String var `guard`: Person? var owner: Person? init(dong: String, ho: String) { buildingNumber = .. 더보기
인스턴스의 생성과 소멸 인스턴스의 생성과 소멸인스턴스를 생성하는 이니셜라이저와 클래스의 인스턴스가 소멸될 때 호출되는 디이니셜라이저 그리고 그와 관련된 것들에 대해 알아봅니다.프로퍼티 초기값이니셜라이저 init디이니셜라이저 deinit 소스코드 프로퍼티 기본값스위프트의 모든 인스턴스는 초기화와 동시에 모든 프로퍼티에 유효한 값이 할당되어 있어야 합니다. 프로퍼티에 미리 기본값을 할당해두면 인스턴스가 생성됨과 동시에 초기값을 지니게 됩니다.class PersonA { // 모든 저장 프로퍼티에 기본값 할당 var name: String = "unknown" var age: Int = 0 var nickName: String = "nick" } // 인스턴스 생성 let jason: PersonA = PersonA() // 기본값.. 더보기