본문 바로가기

야곰

열거형 - Enumerations 열거형 소스코드 정의 문법스위프트의 열거형은 다른 언어의 열거형과는 많이 다릅니다. 잘 살펴보아야 할 스위프트의 기능 중 하나입니다.enum은 타입이므로 대문자 카멜케이스를 사용하여 이름을 정의합니다각 case는 소문자 카멜케이스로 정의합니다각 case는 그 자체가 고유의 값입니다각 케이스는 한 줄에 개별로도, 한 줄에 여러개도 정의할 수 있습니다 enum 이름 { case 이름1 case 이름2 case 이름3, 이름4, 이름5 // ... } 열거형 사용enum Weekday { case mon case tue case wed case thu, fri, sat, sun } // 열거형 타입과 케이스를 모두 사용하여도 됩니다 var day: Weekday = Weekday.mon // 타입이 명확하다면.. 더보기
클래스 클래스 소스코드 정의 문법클래스는 참조 타입입니다. 타입이름은 대문자 카멜케이스를 사용하여 정의합니다.class 이름 { /* 구현부 */ } 프로퍼티 및 메서드 구현클래스의 타입 메서드는 두 종류가 있습니다. 상속 후 재정의가 가능한 class 타입메서드, 상속 후 재정의가 불가능한 static 타입메서드가 있습니다. 자세한 내용은 상속 부분에서 다시 다룹니다.class Sample { // 가변 프로퍼티 var mutableProperty: Int = 100 // 불변 프로퍼티 let immutableProperty: Int = 100 // 타입 프로퍼티 static var typeProperty: Int = 100 // 인스턴스 메서드 func instanceMethod() { print("inst.. 더보기
구조체 구조체 소스코드 정의 문법스위프트 대부분의 타입은 구조체로 이루어져 있습니다. 구조체는 값 타입입니다. 타입이름은 대문자 카멜케이스를 사용하여 정의합니다.struct 이름 { /* 구현부 */ } 프로퍼티 및 메서드 구현struct Sample { // 가변 프로퍼티 var mutableProperty: Int = 100 // 불변 프로퍼티 let immutableProperty: Int = 100 // 타입 프로퍼티 static var typeProperty: Int = 100 // 인스턴스 메서드 func instanceMethod() { print("instance method") } // 타입 메서드 static func typeMethod() { print("type method") } } 구조.. 더보기
옵셔널 옵셔널 소스코드학습자료 옵셔널 값 추출 소스코드학습자료 관련문서 The Swift Programming Language - The Basics by yagom facebook : http://www.facebook.com/yagomSoftfacebook group : https://www.facebook.com/groups/yagom/ p.s 제 포스팅을 RSS 피드로 받아보실 수 있습니다. RSS Feed 받기 ↓↓↓ 블로거에게 공감은 큰 힘이 됩니다 ↓↓↓ 더보기
반복문 반복문for-inwhilerepeat-while 소스코드 for-in 구문기존 언어의 for-each 구문과 유사합니다. Dictionary의 경우 이터레이션 아이템으로 튜플이 들어옵니다. 튜플에 관해서는 Swift Language Guide의 Tuples 부분을 참고하면 되겠습니다. for-in 구문의 기본 형태for item in items { /* 실행 구문 */ } for-in 구문의 사용var integers = [1, 2, 3] let people = ["yagom": 10, "eric": 15, "mike": 12] for integer in integers { print(integer) } // Dictionary의 item은 key와 value로 구성된 튜플 타입입니다 for (name,.. 더보기
조건문 조건문if-elseswitch 소스코드 if-else 구문if-else 구문의 기본 형태if만 단독적으로 사용해도 되고, else if, else와 조합해서 사용 가능합니다. if 뒤의 조건 값에는 Bool 타입의 값만 위치해야 하며, 조건 값을 감싸는 소괄호는 선택사항입니다.if 조건 { 조건 } else if 조건 { /* 실행 구문 */ } else { /* 실행 구문 */ } if-else의 사용let someInteger = 100 if someInteger 100 { print("100 초과") } else { print("100") } // 100 // 스위프트의 조건에는 항상 Bool 타입이 들어와야합니다.. 더보기
함수 함수 소스코드 함수의 선언함수선언의 기본형태func 함수이름(매개변수1이름: 매개변수1타입, 매개변수2이름: 매개변수2타입 ...) -> 반환타입 { /* 함수 구현부 */ return 반환값 } // 예) // sum이라는 이름을 가지고 // a와 b라는 Int 타입의 매개변수를 가지며 // Int 타입의 값을 반환하는 함수 func sum(a: Int, b: Int) -> Int { return a + b } 반환 값이 없는 함수func 함수이름(매개변수1이름: 매개변수1타입, 매개변수2이름: 매개변수2타입 ...) -> Void { /* 함수 구현부 */ return } // 예) func printMyName(name: String) -> Void { print(name) } // 반환 값이 없는.. 더보기
Perfect 라우팅 Perfect 라우팅 1. Routes 2. HTTP Method, URI 지정 3. Web Root 디렉터리 설정 4. JSON 응답 지난 번에는 Perfect 서버 애플리케이션을 처음 구동해 보았습니다. 2017/05/17 - [Swift/Perfect] - Perfect 시작하기이번에는 라우팅 하는 방법에 대해서 알아보려고 합니다 :) * 참고 *2017년 5월 현재 Swift 3 / Perfect 최신버전 2.0.x 환경에서 진행함을 알려드립니다.* Swift 최신 버전 확인* Perfect 최신 버전 확인 RoutesHTTP 요청에 의해 여러 메서드, URI에 따른 동작을 처리하려면 Routes라는 구조체를 사용합니다.지난 번 main.swift파일에 서버 포트를 지정해 주었던 server.se.. 더보기
컬렉션 타입 컬렉션 타입 Array - 순서가 있는 리스트 컬렉션 Dictionary - `키`와 `값`의 쌍으로 이루어진 컬렉션 Set - 순서가 없고, 멤버가 유일한 컬렉션 소스코드 ArrayArray는 멤버가 순서(인덱스)를 가진 리스트 형태의 컬렉션 타입입니다. Array 선언 및 생성Array는 여러 리터럴 문법을 활용할 수 있어서 표현 방법이 다양합니다// 빈 Int Array 생성 var integers: Array = Array() // 같은 표현 // var integers: Array = [Int]() // var integers: Array = [] // var integers: [Int] = Array() // var integers: [Int] = [Int]() // var integers: .. 더보기
데이터 타입 Swift의 기본 데이터 타입 Bool Int, UInt Float, Double Character, String 소스코드 Bool true와 false만을 값으로 가지는 타입 var someBool: Bool = true someBool = false // someBool = 0 // 컴파일 오류발생 // someBool = 1 // 컴파일 오류발생 Int, UInt Int 정수 타입. 현재는 기본적으로 64비트 정수형. var someInt: Int = -100 // someInt = 100.1 // 컴파일 오류발생 UInt 양의 정수 타입. 현재는 기본적으로 64비트 양의 정수형. var someUInt: UInt = 100 // someUInt = -100 // 컴파일 오류발생 // someUIn.. 더보기
Perfect 시작하기 Perfect 시작하기 1. Perfect 패키지 설치 2. 서버 실행해보기 지난 번에 우분투에 스위프트를 설치해보았는데요, 2017/04/03 - [Swift/Perfect] - 우분투(Ubuntu)에 스위프트 설치하기이번엔 우분투에 퍼펙트를 설치 해볼 요량입니다. 맥의 터미널에서도 동일(하거나 유사)한 명령어로 진행이 가능하니 맥에서 진행하셔도 무방합니다 :) * 참고 *2017년 5월 현재 Swift 3 / Perfect 최신버전 2.0.x 환경에서 진행함을 알려드립니다.Swift 최신 버전 확인Perfect 최신 버전 확인 리눅스 패키지 설치우분투에서 Perfect를 사용하려면 OpenSSL, libssl-dev, uuid-dev가 필요합니다. 설치해줍니다. (맥에서는 설치할 필요가 없습니다.)>.. 더보기
상수와 변수 상수, 변수의 선언 소스코드 상수 선언 키워드 let 변수 선언 키워드 var let 이름: 타입 = 값 var 이름: 타입 = 값 값의 타입이 명확하다면 타입은 생략 가능 let 이름 = 값 var 이름 = 값 let constant: String = "차후에 변경이 불가능한 상수 let" var variable: String = "차후에 변경이 가능한 변수 var" variable = "변수는 이렇게 차후에 다른 값을 할당할 수 있지만" // constant = "상수는 차후에 값을 변경할 수 없습니다" // 오류발생 상수 선언 후에 나중에 값 할당하기 나중에 할당하려고 하는 상수나 변수는 타입을 꼭 명시해주어야 합니다 let sum: Int let inputA: Int = 100 let inputB.. 더보기
이름짓기, 콘솔로그, 문자열 보간법 Swift 기초 소스코드 이름짓기 규칙 Lower Camel Case fuction, method, variable, constant someVariableName Upper Camel Case type(class, struct, enum, extension…) Person, Point, Week Swift는 모든 대소문자를 구분합니다. 콘솔로그 남기기 print 함수 단순 문자열 출력 dump 함수 인스턴스의 자세한 설명(description 프로퍼티)까지 출력 문자열 보간법 String Interpolation 프로그램 실행 중 문자열 내에 변수 또는 상수의 실질적인 값을 표현하기 위해 사용합니다. \() 관련 문서 Swift API Design Guidelines The Swift Programmi.. 더보기
스위프트 시작하기 강좌소개 [PDF 자료] 시작합니다 by yagom facebook : http://www.facebook.com/yagomSoftfacebook group : https://www.facebook.com/groups/yagom/ p.s 제 포스팅을 RSS 피드로 받아보실 수 있습니다. RSS Feed 받기 더보기
Swift에서 Objective-C의 상수 대체제에 관하여 오늘의 주제 Objective-C의 상수와 스위프트의 상수 안녕하세요 야곰입니다.Objective-C를 쓰다가 스위프트로 넘어왔을 때 고민되었던 부분 중의 하나인 스위프트의 상수에 관해 이야기해 보려 합니다. 혼자 프로젝트를 진행하다 보면 상수의 필요성을 많이 느낄 수 없을지 모르지만, 누군가 협업을 하게 된다면, 혹은 미래 또는 과거의 나와 협업(?)을 하게 된다면 상수의 필요성을 많이 느끼게 됩니다. 바꾸면 안 되는 데이터를 실수로 바꿔서 난감했던 경험이 없나요? 혹시 그런 적이 있다면 상수의 필요성에 대해서는 많이 공감하실 것으로 생각됩니다. * 오해가 생길 소지의 표현들이 있어서 처음 발행 이후 조금 수정하였습니다. 좋은 의견 주신 과니님 고맙습니다 :) 사라진 const 사실 저는 Objecti.. 더보기
우분투(Ubuntu)에 스위프트 설치하기 Ubuntu에 Swift 설치하기 1. 우분투 서버에 스위프트(Swift) 언어 라이브러리 설치2. 간단한 스위프트 프로그램 작성/실행 안녕하세요 야곰입니다. 애플의 새로운 언어 스위프트는 맥 운영체제 외에도 리눅스(우분투)에서 사용할 수 있습니다.우분투에서 스위프트를 사용하기 위해 설치하고, 스위프트 프로그램을 간단히 작성해봅니다. # 사전 준비지식 본 포스팅을 함께 해보기 위해 필요한 기초 사전지식입니다.vi 사용법기초 리눅스 명령어(옵션)ssh 사용법(옵션) # 사전 준비 우분투(Ubuntu Server 16.04.2 LTS 64bit) 에 스위프트를 설치해 보겠습니다. 우분투 설치방법은 아래글을 참고하세요.[Styudy For Us - 우분투 서버 버전 설치하기][CPUU - 우분투 14.04 L.. 더보기
CocoaPods 설치 및 Pod 설치 오늘의 Tip 1. CocoaPods이란?2. CocoaPods 설치3. Pod 설치4. Pod 찾아보기 안녕하세요 야곰입니다.오늘은 코코아팟에 대한 이야기를 해보려고 합니다. # CocoaPods이란? iOS 및 macOS, tvOS 등 애플 플랫폼에서 개발을 할 때, 외부 라이브러리를 관리하기 쉽도록 도와주는 의존성 관리 도구들이 있습니다. CocoaPods는 애플 플랫폼을 위한 의존성 관리도구의 일종입니다. 애플 플랫폼에서 사용할 수 있는 의존성 관리 도구의 대표적인 예로는 [CocoaPods], [Carthage], [Swift Package Manager] 등이 있습니다. 더 자세한 설명은 이미 써두신 분들이 많아 링크를 드립니다. CocoaPods에 대해 설명하고 있는 문서 링크[Naver D.. 더보기
스위프트 프로그래밍 집필도서 출간 안내 안녕하세요 야곰입니다 :) 벌써 책이 나온지는 꽤 되었고 부끄럽지만 제가 쓴 책을 소개합니다. 스위프트 프로그래밍이라는 책이구요, 한빛미디어에서 나왔습니다. [링크] 스위프트 프로그래밍 언어 문법서이며, 여러가지 팁과 노트가 수록되어 있습니다. 스위프트를 활용한 프로그래밍 기법이라던지 최근 이야기되고 있는 프로그래밍 패러다임에 대한 이야기들도 있습니다. 많은 참고가 되면 좋겠습니다. 링크[한빛미디어][교보문고][YES24][알라딘][인터파크][반디앤루니스][영풍문고][다음 책][네이버 책] by yagom facebook : http://fb.yagom.netfacebook group : https://www.facebook.com/groups/yagom/ p.s 제 포스팅을 RSS .. 더보기
iOS7에서 상태바를 없애고 싶을 때 오늘의 Tip 1. iOS 7 상태바 없애기 안녕하세요. 오랜만에 포스팅입니다. iOS 7에서는 화면마다 상태바를 보여줄 수 있거나 안보여 줄 수 있게 되었죠. 그래서 화면마다 상태바를 보여줄지 말지 결정하는 코드가 들어가야 한다는 이야기입니다. 어떻게 보면 귀찮아졌죠... 상태바를 안보이게 하는 방법을 한 번 알아봅시다. # 상태바 없애기 일단 싱글뷰로 빈 프로젝트를 생성해 봤습니다. 그냥 실행 해 보면 빈 화면에 상태바가 나올거예요. 그러면 이제 뷰컨트롤러 구현 파일에 코드를 넣어봅시다. 요로코롬 넣고 실행하면 해당 뷰 컨트롤러에서는 상태바가 안보이게 될거예요. 그런데, 이걸 뷰 컨트롤러마다 넣어줄 수도 없고..ㅡㅡ 귀찮아요. 그래서 커스텀 클래스를 만들어서 다른 뷰 컨트롤러들에 상속시켜주려고 해요... 더보기
NSURLConnection - 서버로 데이터 업로드 하기 오늘의 Tip 1. NSURLConnection으로 데이터 업로드하기 서버로 데이터를 전송할 수 있는 코드입니다. 자세한 설명은 생략하고 샘플코드정도 올려드립니다. NSURLConnection으로 데이터 업로드만 할 수 있는 것은 아니기 때문에 도큐먼트를 보면서 활용방안을 좀 더 찾아보시면 많은 곳에 활용할 수 있습니다. 예제에는 이미지 업로드를 예제로 하였으나 비단 이미지 데이터 뿐만 아니라 대부분의 데이터 전송이 가능하므로 참고하시기 바랍니다. 우선 헤더에 NSURLConnectionDataDelegate를 사용할 것이라고 명기합니다. 비동기 방식으로 전송하려면 델리게이트를 사용해야 합니다. NSURLConnectionDataDelegate는 iOS 5.0 이상부터 사용 가능합니다. 그 이하 버전은 .. 더보기