iOS/Swift

    Swift 5.7 - if let 문 간략화

    Swift 5.7 - if let 문 간략화

    Swift 5.7 의 변경사항 중 당장 피부에 와닿을 변경점인 if let 문이 어떻게 개선됐는지 알아보려고 합니다. Swift 5.7 의 변경사항은 아래 글에서 확인하실 수 있습니다! Swift 5.7 릴리즈 - 언어 및 표준라이브러리, 개발자 경험 아래 글은 원문 링크에 구글 번역과 조심스러운 의역으로 이루어져있습니다! 틀린 내용이 있으면 댓글로 알려주세요:) 원문 바로가기 Swift 5.7 Released! Swift 5.7 is now officially released! Swift 5.7 inclu.. youngkdevlog.tistory.com let foo: Foo? = ... if let foo = foo { someFunc() } // 또는 if let foo = foo else { re..

    Swift 5.7 릴리즈 - 언어 및 표준라이브러리, 개발자 경험

    Swift 5.7 릴리즈 - 언어 및 표준라이브러리, 개발자 경험

    아래 글은 원문 링크에 구글 번역과 조심스러운 의역으로 이루어져있습니다! 틀린 내용이 있으면 댓글로 알려주세요:) 원문 바로가기 Swift 5.7 Released! Swift 5.7 is now officially released! Swift 5.7 includes major additions to the language and standard library, enhancements to the compiler for a better developer experience, improvements to tools in the Swift ecosystem including SourceKit-LSP and the Swif www.swift.org Swift 5.7 가 정식 출시되었습니다! Swift 5.7에는..

    [iOS][Swift] 프로토콜 vs 인터페이스 차이점

    [iOS][Swift] 프로토콜 vs 인터페이스 차이점

    Swift를 공부하다보니 protocol 이란 개념이 많이 등장해서 protocol 이 정확히 뭘까하고 자료들을 찾다가, Swift는 프로토콜 지향 언어(Protocol-Oriented-Language) 라는 것을 알게 되었다. 그런데 읽다보니 Java에서의 interface 와 비슷한 것 같았고, 무엇이 다른지 알아보았습니다. protocol(프로토콜)은 특정 역할을 수행하기 위한 메서드, 프로퍼티, 기타 요구사항 등의 청사진을 정의합니다. 구조체, 클래스, 열거형은 프로토콜을 채택(Adopted) 해서 특정 기능을 수행하기 위한 프로토콜의 요구사항을 실제로 구현할 수 있습니다. 어떤 프로토콜의 요구사항을 모두 따르는 타입은 그 프로토콜을 준수한다(Conform) 고 표현합니다. 타입에서 프로토콜의 요..

    [iOS][Swift] guard 문

    [iOS][Swift] guard 문

    고수들이 짠 코드들을 보다보면 모르는 구문들이 많아 코드가 이해안될 때가 많다. 그중 하나가 guard 이다. guard 문은 조건들을 걸러낼 때 사용한다. 그럼if 문을 사용하면 되는데, 왜 guard 를 사용하냐고 묻는다면 그 이유는 가독성에 있다. 먼저 guard 문의 사용법 부터 알아보자 guard 사용법 문법 guard " 조건 " else { 조건이 false 일 때 실행될 구문 } 사용 예시 // someValue 가 0이 아닐때만 출력 func someFunc(someValue: Int?) { guard someValue != 0 else { return } print(someValue) } someFunc(someValue: 5)// 5 if 문과 비교 string을 전달받아 출력해주는 ..

    [iOS][Swift] 코딩 컨벤션

    [iOS][Swift] 코딩 컨벤션

    Class 는 Pascal Casing을 사용한다. class ApplicationManager class SoftwareSetting 로컬 변수, 함수, 함수 파라미터는 camel Casing을 사용한다. func openFunction(someParameter: Int) { let someNumber: Int = 0 } 상수의 경우 대문자와 밑줄을 사용한다. let CONST_NUMBER = 100 변수이름 앞에 접두사를 붙인다. //멤버 변수 (m) let mAge: Int = 24 //Bool 타입 (b) let bClicked: Bool = false let mbClicked: Bool = false //enum 타입 (e) enum eDirection { case North. South } 리..

    [iOS][Swift] Class 와 Struct

    [iOS][Swift] Class 와 Struct

    클래스와 구조체(Class and Structure) 클래스와 구조체는 프로그램 코드 블럭을 만들도록 유연하게 구성하는 것이 일반적인 목적이다. 다른 언어와 달리 Swift는 사용자 클래스와 구조체를 위한 인터페이스 파일과 구현 파일을 따로 나누어 만들 필요가 없다. 단일 파일에 클래스나 구조체를 정의하고, 외부 인터페이스로 다른 코드에 사용하기 위한 클래스와 구조체는 자동으로 만들어진다. 클래스와 구조체의 공통점 여러 변수를 담을 수 있는 컨테이너 데이터를 용도에 맞게 묶어 표현하고자 할때 용이함 프로퍼티와 메소드를 사용하여 구조화된 데이터와 기능을 가짐 하나의 새로운 사용자 정의 데이터 타입을 만듬 초기화, 확장(extension) 가능 프로토콜 사용 가능 서브스크립트(subscript) 사용 가능 ..

    [iOS][Swift] Closure를 활용해 간단한 계산하기

    [iOS][Swift] Closure를 활용해 간단한 계산하기

    정수의 합을 구하는 Closure var addClosure: (Int, Int) -> Int = { (a: Int, b: Int) -> Int in return a + b } 위 코드는 간소화 하지않은 가장 기본적인 형태의 closure 로 두 개의 정수를 parameter 로 받아 합을 반환하는 closure 입니다. 코드를 봤을때 조금 복잡해보이지만 closure 는 코드를 간략화 할 수 있는 강력한 기능을 가지고 있습니다. Closure 간소화하기 타입 생략 먼저 앞에서 parameter 가 Int 라고 선언 되었으니 closure 는 타입 추론을 통해 a 와 b 가 자연스럽게 Int 라는 것을 알 수 있습니다. 이를 줄여보면 var addClosure: (Int, Int) -> Int = { (..