출처http://kka7.tistory.com/11 클래스와 구조체 개념 Swift 는 사용자 정의 클래스와 구조체에 대해인터페이스와 구현 파일 구분이 필요하지 않다. 클래스나 구조체를 하나의 파일로 정의하고클래스나 구조체를 다른 코드에서 사용하기 위한외부 인터페이스는 자동으로 만들어진다. 클래스의 인스턴스를 전통적으로 객체라고 한다.하지만 Swift 의 클래스와 구조체는 다른 언어에 비해 함수에 더 가깝고클래스 또는 구조체의 타입 중 하나의 인스턴스로 적용할 수 있는 기능을 알아본다. 클래스와 구조체 비교클래스와 구조체는 공통적으로 아래 역할을 모두 할 수 있다. - 값을 저장하기 위해 프로퍼티 정의- 함수를 제공하기 위해 메소드 정의- 값에 대해 서브스크립트 문법으로 접근하기 위해 subscript ..
출처http://kka7.tistory.com/10 열거형 (Enumerations) Swift 의 enum 은 매우 유연하고 열거형의 각 case 에 대한 값을 반드시 제공하지 않는다. 값들은 각 열거형 case 에 대해 제공되며그 값은 문자열, 문자, 정수형, 실수형 타입이 될 수 있다. 또한 열거형은 그 자체로 클래스 타입이다.열거형의 현재 값에 관해 추가정보를 제공하기 위해프로퍼티나 관련된 함수를 제공하는 인스턴스 메소드 등을 사용할 수 있다. 열거형은 초기화를 정의할 수 있고확장하기 위해 확장될 수 있다. 그리고 표준 기능을 제공하기 위해프로토콜을 준수할 수 있다. 문법 enum CompassPoint { case north case south case east case west } Object..
출처http://kka7.tistory.com/9 클로저의 개념스스로를 포함하는 함수 블록이며코드 안에서 전달하고 사용할 수 있다. 클로저는 Objective-C 의 Block 과 다른 프로그래밍 언어의 람다와 비슷하다. 클로저는 정의된 Context 로부터 모든 상수와 변수에 대한 참조를 캡쳐하고 저장한다.Swift 는 캡쳐하는 모든 메모리를 관리해준다. 전역, 중첩 함수들은 클로저의 특별한 경우이다. 클로저 표현식 (Closure Expressions) 클로저 표현식은 문법에 집중하여짧은 시간에 클로저를 작성하는 방법이다. 표현식은 명확성과 의도를 잃지 않고 작성 중인 클로저에 대해최적화하는 몇가지 문법을 제공한다. 아래와 같은 예제가 있다.일반적으로 우리가 썼던 방식이다. let names = ["..
출처http://kka7.tistory.com/8 함수 정의와 호출 기본 형식func greetAgain(person: String) -> String { return "Hello again, " + person + "!"} print(greetAgain(person: "Anna")) 파라미터 없는 함수func sayHelloWorld() -> String { return "hello, world"} print(sayHelloWorld()) 여러개의 파라미터를 가진 함수 func greet(person: String, alreadyGreeted: Bool) -> String { if alreadyGreeted { return greetAgain(person: person) } else { return g..
출처http://kka7.tistory.com/7 흐름제어Swift 의 for-in 문은 array, dictionary, range, string, sequences 에서의반복을 쉽게해준다. switch 의 case 는 다음 case 로 넘어가지 않는다.일반적인 C 에서 break 문을 빼먹는 실수로 발생되는 오류를 피하게해준다. For Loop for index in 1...5 { print("\(index) times 5 is \(index * 5)") } 특별히 index 가 필요없다면 아래와 같이 ( _ ) 언더바를 이용할 수 있다. let base = 3let power = 10var answer = 1 for _ in 1...power { answer *= base} print("\(base..
출처http://kka7.tistory.com/6 컬렉션 타입Swift 는 array, set, dictionary 에 저장할 수 있는 값과 키의 타입에 대해 명확하다.이는 실수로 컬렉션에 잘못된 타입의 값을 추가할 수 없다는 뜻이다. 컬렉션의 수정array, set, dictionary 로 만들고 변수로 할당하면 컬렉션은 mutable 하다.상수로 할당하면 컬렉션은 수정할 수 없고크기와 내용은 바꿀 수 없다. Array타입의 값을 정렬된 목록으로 저장한다.Swift 의 배열 선언법은 아래와 같다.일반적으로 축약형태를 권장한다. 선언 var array = [Int]() var array2 = Array() var array3 : Array 기본값으로 배열 생성하기 var threeDoubles = Arr..
출처http://kka7.tistory.com/5 Swift 의 String 타입은 Foundation 의 NSString 클래스와 bridged 되어있다.Foundation 은 NSString 에 의해 정의된 메소드들을 사용하기 위해 String 을 확장한다.이는 Foundation 을 포함하면 String 에서 변환(casting) 없이 NSString 메소드를 접근할 수 있다는 의미이다. 문자열 선언 let someString = "Some string literal value" 빈 문자열 초기화var emptyString = String() var anotherEmptyString = "" if emptyString.isEmpty { print("empty string") } 문자열은 값 타입이다..
출처http://kka7.tistory.com/4 할당 연산자 ( = )할당 연산자는 a 의 값을 b 의 값으로 초기화 하거나 갱신한다.우측이 어려 값을 갖는 튜플이면 한번에 여러개의 상수나 변수 요소들로 분해할 수 있다. let (x, y) = (1, 2) Objective-C 와 다르게Swift 에서의 할당 연산자는 값을 반환하지 않는다. if x = y { // This is not valid, because x = y does not return a value. } 이 기능은 할당 연산자가 우연치 않게 동등 연산자로 사용되는 것을 막아주기 위해 도입되었다. 산술 연산자 ( + , - , * , / )Objective-C 와는 다르게 Swift 는 기본적으로 overflow 값을 허용하지 않는다.S..
출처http://kka7.tistory.com/2 옵셔널 (Optional) Optional 은 Objective-C 에서 포인터에 nil 을 사용하는 것보다 안전하고 쓰임새가 많으며Swift 의 강력한 기능들 중에 핵심이다. 옵셔널은 값이 없을 수 있는 상황에서 사용한다.옵셔널은 두가지 가능성을 표현한다. - 값이 있고, 값에 접근하기 위해 옵셔널은 unwrap 할 수 있다.- 값이 전혀 없다. 옵셔널의 개념은 Objective-C 에서는 없다.가까운 것으로는 메소드가 nil 을 반환하거나 객체를 반환하는 것이며nil 은 유효한 객체가 없다라는 것을 의미한다. 하지만, 이것은 객체에 대해서만 동작한다.구조체, 기본적인 C 타입, 열거형의 값에 대해서는 동작하지 않는다. Swift 의 옵셔널은 특별한 상..
출처http://kka7.tistory.com/2 상수와 변수선언상수는 let, 변수는 var 를 이용해 선언한다. let maximumNumberOfLoginAttempts = 10 var currentLoginAttempt = 0 var x = 0.0, y = 0.0, z = 0.0 타입을 명시 var welcomeMessage: String var red, green, blue: Double 상수나 변수 출력print( ... ) 함수를 이용한다.Swift 에서는 문자열 끼워넣기 (string interpolation) 을 사용하여긴 문자열에서 자리표시자(placeholder) 처럼 상수나 변수의 이름을 포함하여 표시할 수 있다. var currentLoginAttempt = 0 print(curr..
- Total
- Today
- Yesterday
- RunLoop
- 읽기 좋은 코드가 좋은 코드다
- NSManagedObjectModel
- NSManagedObject
- AWS
- CIImage
- HTTP
- ios
- Swift3
- thread
- 꺼내먹어요
- CGImage
- NSManagedObjectContext
- dictionary
- Swift
- EffectiveObjectiveC
- Swift 3
- Swfit
- set
- Block
- workerThread
- docker
- Arc
- optional
- coredata
- UIView
- string
- delegate
- Swift 3.0
- applicationWillResignActive
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |