본문 바로가기

Swift

(11)
Swift - 싱글톤 디자인 패턴(Singleton Design Pattern) 싱글톤 디자인 패턴이란 특정한 클래스의 인스턴스가 유일하게 하나만 존재하도록 디자인하는 패턴입니다. 예를 들자면, 간단하게 유저 정보를 저장하기 위한 목적으로 싱글톤 디자인 패턴을 사용할 수 있습니다. 아래와 같이 static 키워드를 통해 해당 클래스 타입의 상수를 클래스 속성으로 선언합니다. 이 때 IOS에서는 shared라는 이름을 많이 사용합니다. (ex. AVAudioSession.sharedInstance() ) class UserInformation { static let shared: UserInformation = UserInformation() var name: String? var age: Int? var addr: String? } 이렇게 생성한 싱글톤 객체를 통해 여러 인스턴스들이..
Swift - 스위프트 API 디자인 가이드라인 번역 링크! https://github.com/connect-boostcamp/SwiftAPIDesignGuidelines/blob/master/README.md connect-boostcamp/SwiftAPIDesignGuidelines Swift API Design Guidelines 번역입니다. Contribute to connect-boostcamp/SwiftAPIDesignGuidelines development by creating an account on GitHub. github.com 스위프트 API 디자인 가이드라인 번역 링크입니다!
Swift - Exception Handling(예외처리) Error 타입 thrown 될 수 있는 에러값을 나타내는 타입 열거형을 이용한 예외 정의 enum(열거형)으로 오류 케이스들을 정의해줍니다. 단, 원치않는 경우 꼭 오류 정의를 하지 않아도 됩니다. // 예외 케이스 정의. 필수는 아니다. enum defineError: Error { case outOfRange // 기본 enum 케이스 case nonEven(testInput : Int) // 파라미터를 받는 케이스 // case .... 여러개 가능 } 예외 정의별로 조건을 작성한 함수 정의 throw로 던져진 예외를 처리하는 곳은 throws가 정의된 함수가 호출된 부분입니다. // 예외 케이스별로 예외 조건을 작성하여 예외 처리하고 싶은 함수 정의 func printEvenInt(number:..
Swift - Constants(상수) 다루기 with Static 키워드(typeProperty, type Method) 상수(let)는 계속해서 변하지않는 하나의 같은 값을 사용하는 것이기 때문에 따로 상수 데이터들을 정리한 파일을 만들어 관리한다. 이렇게 하면 String 등에서 철자 하나로 오류가 나는 것을 방지 할 수 있다. 여기서 핵심은 static 키워드를 사용하여 typeProperty를 만드는 것이다. 이렇게 함으로써 인스턴스를 생성하지 않고 바로 타입에서 타입프로퍼티를 사용할 수 있다. 예제) Struct Foo { // typeProperty static let myName = "tonyWest" static let myHeight = 189 static let pi = 3.14 static let address = "saemoonangil1" } // 인스턴스 생성없이 타입으로 바로 사용 가능 Foo.m..
Swift - for loop Swift3부터 아래와 같은 C 스타일의 for문은 사용이 불가하다 // C 스타일의 for문 for(int i=0; i
Swift - Extension struct의 extension - 한 구조체에 대한 여러개의 프로토콜 확장을 개별적인 코드 블록으로 나눌 수 있게 해줍니다. 또는 구조체에 정의된 메소드들의 오버로딩의 작성도 용이하게 만들어 줍니다. class의 extension - 한 클래스에 대한 여러개의 클래스의 상속이나 프로토콜 확장 등을 개별적인 코드 블록으로 나눌 수 있게 해줍니다. 또는 클래스에 정의된 메소드들의 오버로딩의 작성도 용이하게 만들어 줍니다. protocol의 extension - extension을 통해 protocol의 default implementation을 설정 할 수 있습니다. // 프로토콜 선언 protocol Dog{ func say() } // 확장 키워드를 통해 프로토콜에 정의된 메서드의 디폴트 실행문 작성 ..
Swift - Double형 데이터를 String으로 포멧 지정하여 나타내는 법 let foo: Double var bar: String bar = String(format: "%.1f", foo) // 소수점 첫째자리까지 나타내기
Swift - 함수의 Input과 return에 함수 넣기, 간단한 Closure 함수의 Input에 함수를 넣을 수 있습니다. 아래의 calculator 함수의 Input을 보면 operation: (Int, Int) -> Int처럼 함수가 인자로 들어간 것을 확인 할 수 있습니다. (Int, Int) -> Int 처럼 정의를 하면 (Int, Int) -> Int 형식의 Input과 Return 형식을 가진 모든 함수를 인자값으로 넣을 수 있습니다. 그리고 calculator 함수의 return 값으로 operation(no1, no2)가 있는 것을 볼 수 있는데, 인자로 넣어준 Int값 두 개를(no1, no2) 인자로 넣어준 함수에(operation) 인자로 넣어 계산한 함수의 리턴값을 다시 리턴하는 구조입니다. func calculator(no1: Int, no2: Int, o..