안녕하세요~ 차니에요! 오늘은 Swift의 클로저에 대해 알아보도록 하겠습니다. 1. 클로저(Closure)란? 일정 기능을 수행하는 코드의 블럭을 뜻하며 일급 객체의 역할을 할 수 있다. Named Closure : 이름이 있는 클로저로 일반적인 함수가 이에 해당합니다. Unnamed Closure : 이름이 없는 익명 함수로 일반적으로 클로저라 함은 Unnamed Closure를 지칭합니다. Swift에서 함수는 일급 객체이므로 클로저(익명 함수) 또한 일급 객체로서의 역할이 가능합니다. 2. 클로저 표현 방식 { (Parameters) -> Return Type in // Code ... } 아래와 같이 함수로 따로 정의된 형태가 아닌 인자로 들어가 있는 형태를 Inline Closure 라고 합니..
안녕하세요~ 차니에요! 오늘은 1급 객체에 대해 알아볼게요. Swift의 함수가 일급 객체이므로 Swift로 진행하겠습니다! 1. 일급 객체란? 컴퓨터 프로그래밍 언어 디자인에서, 일급 객체(영어: first-class object)란 다른 객체들에 일반적으로 적용 가능한 연산을 모두 지원하는 객체를 가리킨다. 보통 함수에 매개변수로 넘기기, 수정하기, 변수에 대입하기와 같은 연산을 지원할 때 일급 객체라고 한다. (위키백과) 2. 일급 객체의 조건 일급 객체가 되기 위해선 아래 3가지 조건을 모두 충족하여야 합니다. 변수에 저장할 수 있어야 한다. 객체(함수)의 인자로 전달할 수 있어야 한다. 객체(함수)의 리턴값으로 사용할 수 있어야 한다. 위 세가지 조건을 모두 충족하고 있기에 Swift의 함수는 ..
안녕하세요~ 차니에요! 오늘은 지난 시간에 이어서 옵셔널 바인딩에 대해 포스팅하려고 해요. 옵셔널에 대해 잘 모르신다면 이전 글 한 번 슥 보고 와주세요~ 1. Optional binding 이란? Optional Type의 변수에서 값을 추출(unwrapping)하는 과정을 일컬어 Optional binding이라 합니다. 아래로는 여러 바인딩 방법에 대해 알아보도록 할게요~! 2. forced unwrapping forced unwrapping, 번역하면 강제 추출이라는 뜻으로 Optional Type 변수에서 값을 강제로 추출하는 방법입니다. 사용법은 추출할 변수명뒤에 !를 붙혀주면 됩니다. 그러면 출력 결과에 unwrapping된 값(summer)이 찍히는 걸 볼 수 있습니다. 두 번째 예제는 n..
안녕하세요~ 차니에요! 오늘은 옵셔널(Optional)에 대해 알아볼거에요. 관련 내용이 많아서 시리즈로 작성하도록 하겠습니다! 1. 옵셔널이란 무엇인가? Optional은 nil을 사용할 수 있는 타입인지 아닌지를 구분하기 위해 사용합니다 nil을 사용할 수 있는 type을 Optional Type 반대로 nil을사용할 수 없는 type을 Non-Optional Type이라고 지칭합니다. 글만 보면 잘 와닿지 않을테니 간단한 예제를 통해 알아보도록 하겠습니다. 2. Non-Optional Type, Optional Type 첫 번째로 Non-Optional Type 입니다. nil은 Optional Type에서만 사용 가능하다고 했죠? 예제를 보면 일반 String에 nil을 대입하려고하니 에러가 나는..
안녕하세요~ 차니에요! 오늘은 안드로이드의 나인패치처럼 iOS에서 사용할 수 있는 방법에 대해 알아볼거에요. 1. 나인패치란? 나인패치(9-patch; nine-patch)는 이미지 파일 포맷인데 형식은 {###.9.png} 이런 느낌입니다. 모바일 앱 개발을 하다보면 화면 해상도에 따라 이미지 사이즈가 커지거나 작아지는 경우들이 생기죠? 만약 커지는 경우라면 이미지가 깨지는 현상이 자연스럽게 발생하게되는데 이를 나인패치를 적용하게 되면 늘어나지 않을 영역을 지정하여 이미지가 깨져보이지 않게 표현할 수 있습니다. 하지만 iOS에서는 나인패치 형식을 지원하지 않아서 유사한 방법을 알려드릴게요. 2. iOS 적용 2-1. 적용 방법 그 후 우측 네비게이션이 닫혀있다면 열어주신 뒤 4번째 탭으로 이동할게요. ..
안녕하세요~ 차니에요! 오늘은 와일드카드 패턴에 대해 알아볼거에요. 간단하지만 자주 사용되니 훑고 가시면 좋을 것 같아요! 1. 와일드 카드 패턴이란? 와일드 카드라는 용어는 프로그래밍 뿐만 아니라 게임, 스포츠 등 여러 분야에서 사용되는 단어인데요. 통상 어떤 용도로도 쓸 수 있는 "조커"로 통하고 있습니다. 스위프트에서 와일드 카드란 "사용되는 곳의 값을 무시(생략)한다" 입니다. 텍스트로만 보면 와닿지가 않으실텐데 아래 예제를 통해 조금 더 알아보겠습니다. 2. 와일드 카드 패턴 예제 func todayMenu(menu: String) { print("오늘의 메뉴는 \(menu)입니다.") } 일반적인 함수형태인데요. 이렇게 선언된 함수의 경우의 함수 호출 방식은 아래와 같습니다. todayMenu..
안녕하세요~ 차니에요! 오늘은 지난 조건문편에 이어서 반복문에 대해 알아보도록 하겠습니다~ 반복문은 말 그대로 무언가를 반복하는 명령어입니다. 반복문에서는 continue와 break를 통해 반복 제어가 가능합니다. continue : continue 아래 코드를 실행시키지 않고 다음 반복을 시작함 break : 반복문을 멈춤 * 샘플 데이터 struct Person { var name: String let age: Int let gender: Gender enum Gender{ case male, female } } 지난 시간에 사용했던 데이터를 더 추가해서 사용해보겠습니다. let channy = Person.init(name: "channy", age: 28, gender: .male) let an..
안녕하세요~ 차니에요! 오늘은 Swift의 조건문에 대해 알아보도록 하겠습니다! 조건문이란 conditional statement라고 하여 조건에 따라 실행되는 프로그래밍 문법입니다. * 샘플 데이터 struct Person { let name: String let age: Int let gender: Gender enum Gender{ case male, female } } let channy = Person.init(name: "channy", age: 28, gender: .male) 예제를 위해 Person struct 및 channy 인스턴스를 만들어주었습니다. 1. if if channy.age > 19 { print("\(channy.name)는 성인이야") } else if channy.a..
2021.07.01 - [프로그래밍/iOS] - [Swift] if let vs guard let (기본편) [Swift] if let vs guard let (기본편) 안녕하세요~ 차니에요! 오늘은 if let과 guard let의 특징과 사용법 그리고 차이점에 대해 알아보겠습니다! 1. Snippets Xcode Snippets을 활용해보도록 하겠습니다. Snippets은 자동완성으로 생각하시면 편할 dvlpr-chan.tistory.com 안녕하세요~ 차니에요! 기본편을 안보고 오신 분들은 이해하는데 어려움이 있을 수 있으니 먼저 보고 오시는걸 추천드릴게요! 기본편에 이어서 오늘은 조금 더 심화된 내용을 알아보도록 할거에요~ 지난 시간에 guard else에는 상위 코드 블럭을 종료하는 함수가 반드..
안녕하세요~ 차니에요!오늘은 if let과 guard let의 특징과 사용법 그리고 차이점에 대해 알아보겠습니다!1. SnippetsXcode Snippets을 활용해보도록 하겠습니다.Xcode 내에서 기본적으로 만들어져 있는 항목들도 있고 커스텀 키워드의 자동완성 또한 만들 수 있으니 활용해보시면 좋을 것 같아요.2. if let2-1. if let 정의if let은 Optional 값을 Unwrapping 하는 과정입니다.옵셔널에 대한 내용은 다음에 시간내서 다루어보도록 하겠습니다! 간단하게 말하면 if문 안의 조건문의 값이 nil인가 아닌가를 체크하는 문법입니다.조건문이 nill이 아니라면 해당 블럭이 실행되는 구조입니다. 아래 예제를 통해 사용법을 보도록 하겠습니다.2-2. if let 예제if..