전체 글

    Swift 기본 문법 - 13. 인스턴스의 생성과 소멸

    13. 인스턴스의 생성과 소멸 13.1 인스턴스 생성 이니셜라이저(initializer)를 정의하면 초기화 과정을 직접 구현할 수 있습니다. 이니셜라이저의 역할은 그저 인스턴스의 첫 사용을 위해 초기화하는 것 뿐입니다. init 메서드는 클래스, 구조체, 열거형 등의 구현부 또는 해당 타입의 익스텐션 구현부에 위치합니다. class SomeClass { init() { // 초기화할 때 필요한 코드 } } struct SomeStruct { init() { // 초기화 할 때 필요한 코드 } } enum SomeEnum { case someCase init() { // 열거형은 초기화할 때 반드시 case중 하나가 되어야 합니다. self = .someCase } } // 저장 프로퍼티 초기화 struc..

    Swift GuideLines - 2.Naming

    네이밍.. 네이밍이 제일어렵다. 사실 네이밍을 작성하는게 어렵다는건 로직에 따른 좋은 이름을 짓고 싶어서 그런게 아닌가 싶다. 어떻게 작성해야 할지 매일 고민하는 부분인데 잘 안되는 부분이다. 예시들을 통해 설명해주었는데 정리하면 1.불필요한 단어는 빼자. 2. 필요한 단어는 넣자. 3.영어 문법처럼 읽히게 작성하자. 4. 네이밍을 타입 위주로 작성하지말고 역할 위주로 작성하자. 5. 파라미터이름이 없을 경우 사용자가 이해가 어렵다면 추가적인 정보를 파라미터에 이름으로 태우자 (at : ) 같은것 필요한 단어들을 모두 포함해주세요. Good // Good extension List { public mutating func remove(at position: Index) -> Element } employ..

    읽기 좋은 코드 작성하기 - Fundamentals

    읽기 좋은 코드 작성하기 - Swift API Design Guidelines iOS를 처음에는 Storyboard로 개발했는데 코드가 관리가 안되고, 조금 구현하기 어렵다 싶으면 왠만하면 programmatically 코드로 작성이되어서 programmatically로 전부 갈아엎었다.. 이제 리팩토링을 어떻게 해야할까 리팩토링을 어떻게 해야할까 고민하던 와중에 찾은 강의다. 읽기 좋은 코드 작성하기 - Swift API Design Guidelines - 인프런 | 강의 이 강의를 통해 이해하기 쉬운 코드가 무엇인지 제대로 된 기준을 잡을 수 있습니다. 단기간에 코드 컨벤션에 관한 많은 노하우를 배울 수 있을 것입니다., - 강의 소개 | 인프런... www.inflearn.com 총강의 시간은 1시..

    Swift 기본 문법 - 12. 프로퍼티와 메서드

    프로퍼티는 클래스, 구조체, 또는 열거형 등에 관련된 값을 뜻합니다. 메서드는 특정 타입에 관련된 함수를 뜻합니다. 12.1.1 저장프로퍼티 클래스의 경우 옵셔널을 준다면, init을 통해 초기값을 주지않아도 괜찮습니다. 나중에 값을 알게되었을 때 class에 값을 넣어줄 수 도 있습니다. // 좌표 struct CoordinatePoint { var x: Int = 0 // 저장 프로퍼티 var y: Int = 0 // 저장 프로퍼티 } // 구조체에는 기본적으로 저장 프로퍼티를 매개변수로 갖는 이니셜라이저가 있다. let kemiPoint = CoordinatePoint(x: 3, y: 5) // class Position { var point: CoordinatePoint // 저장 프로퍼티(변수)..

    Swift 기본 문법 - 11. 구조체와 클래스

    11. 구조체와 클래스 둘 모두 데이터를 용도에 맞게 묶어 표현하고자 할 때 유용하다. 구조체: 값 타입 클래스: 참조 타입 11.1 구조체 11.1.1 구조체의 정의 구조체는 struct 키워드로 정의합니다. struct BasicInformation { var name: String var age: Int } // 구조체 인스턴스의 생성 및 초기화 // 프로퍼티 이름(name, age)으로 자동 생성된 이니셜라이저를 사용하여 구조체를 생성합니다. var kemiInfo: BasicInformation = BasicInformation(name: "kemi", age: 99) kemiInfo.age = 100 kemiInfo.name = "Seba" // 프로퍼티 이름(name, age)으로 자동 생성..

    Swift 기본 문법 - 10. 옵셔널

    옵셔널 다른언어에는 없는 표현으로 스위프트의 특징 중 하나인 안정성safe을 문법으로 담보하는 기능입니다. 옵셔널은 단어 뜻 그대로 '선택적인', 즉 값이 '있을 수도, 없을 수도 있음'을 나타내는 표현입니다. 옵셔널 사용 // var myName: String = "kemi" // myName = nil // 오류! var myName: String? = "kemi" print(myName) myName = nil print(myName) 옵셔널은 어떤 상황에 사용할까요? 1) 함수에 전달되는 전달인자의 값이 잘못된 값일 경우 제대로 처리하지 못했음을 nil을 반환하여 표현 할 수 있습니다. 2) 매개변수를 굳이 넘기지 않아도 된다는 뜻으로 매개변수의 타입을 옵셔널로 정의 할 수도 있습니다. 옵셔널 자..

    Swift 기본 문법 - 9. 함수

    함수 구조체, 클래스, 열거형 등 특정 타입에 연관되어 사용하는 함수를 메서드. 모듈 전체에서 전역적으로 사용할 수 있는 함수를 그냥 함수라고 합니다. swift의 함수는 재정의(오버라이드)와 중복 정의(오버 로드)를 모두 지원합니다. 따라서 매개변수의 타입, 갯수에 따라 같은 이름의 함수를 여러 개 만들 수 있습니다. func hello(name: String) -> String { return "Hello \(name)!" } let helloJenny: String = hello(name: "Jenny") print(helloJenny) func introduce(name: String) -> String { "제 이름은 " + name + "입니다." } let introduceJenny: Str..