swift 5

[iOS] Initialization과 Literal

오늘은 초기화 메소드에 대한 포스팅이다. Objective-C로 개발을 하다보면 가장 많이 구현하는 부분이 초기화 메소드일 것이다. 일반적으로 아래와 같이 초기화 메소드를 사용하게 된다. -(instancetype)init{ self = [super init]; if (self) { //impelment here } return self;} 이중에서 우리가 얘기할 부분은 위에 하이라이팅된 부분이다. 굳이 메모리에 할당되어 있는 self 객체를 슈퍼클래스에서 초기화한 객체로 다시 assign하는 것일까? 주변 다른 개발자 분으로부터 그 해답을 얻었다. 우선 해답은 super class의 초기화 과정을 거치면서 할당된 메모리의 주소가 변경될 수 있기 때문이다. 메모리 주소가 초기화 과정에서 변경되는 이유는 ..

[Swift] Swift is now Open Source

애플에서 Swift를 오픈소스화 한다는 공약을 실천했다. 현재 레파지토리는 Github를 이용하고 있으며 담당 사이트로 Swift.org를 개설했다. 이슈 트래킹은 Jira를 이용한다. Mailing-list를 통하여 Swift의 변동사항과 개발 이슈/동향 등을 reporting 받거나 다른 개발자들과 소통 창구로 이용할 수 있다. 아래 Swift 관련 URL을 모아 놨다. 역시 애플에서 관리하는 프로젝트라서 Contribution section에 있는 가이드를 꼼꼼히 읽고 접근하는 것이 좋을 것 같다. Apple in Github : https://github.com/appleSwift Repository : https://github.com/apple/swift Swift.org : https://s..

[Swift] 알면 좋은 Array에서 제공하는 함수 (map, filter, reduce)

Mapmap은 각 element를 순회하면서 element를 수정할 때 사용하기 좋은 함수이다. 예를 들어 우리는 각 String에 "box"라는 String을 덧붙이기 위하여 for-in을 떠올리기 쉽다. ex) for string in strArray {string += "box"} 대신에 map 함수를 사용하면 한줄로 간단하게 작성할 수 있다. ex)var resultArray = strArray.map({$0+"box"}) 참고로 map의 param 함수 타입은 '(T) -> U'이다. map 함수는 Array의 각 element를 순회하면서 개발자가 정의한 동작을 수행하게 된다. Filterfilter는 말 그대로 특정 조건을 통과한 element들을 모아서 Array로 반환하는 함수 이다. f..

[Swift] Swift Study 2주차 요약 (Closure, Collection, Property, Initialization, Observer ... etc)

Function parameters함수의 param들은 기본적으로 다 상수다. 그러므로 수정이 불가능하다. 함수 내에서 param을 수정하기 위해선 inout param으로 선언하면 되는데, 함수 선언부에서 param앞에 '&'를 표시해주면 된다. Function typefunction type을 다른 function의 param의 타입으로 사용할 수 있다. 함수의 타입이 들어가는 부분에 '(Int, Int) -> Int'와 같이 일반 함수 선언 부에서 함수명의 뒷부분을 적어주면 된다. function type을 사용해서 함수를 param으로 사용할 수 있다. ex)func addTwoInts(a: Int, b: Int) -> Int { return a + b} func printMathResult(ma..

[Swift] Swift Study 1주차 요약 (Alias, Tuple, Optional, Range operator ... etc)

Swift에 입문하기에 앞서 Swift의 전반적인 syntax에 먼저 익숙해지자. /*************************************************************************/ Type alias기존의 타입들을 대체하는 키워드를 정의할 수 있다. 팀내에서 정의된 타입을 사용할 때는 편리할 수 있으나 무분별한 type alias의 사용은 code의 readability를 저해할 것 같다. ex)typealias AudioSample = UInt16 var maxAmplitudeFound = AudioSample.min// maxAmplitudeFound is now 0’ Tuple다수의 value들을 하나의 compound value로 사용할 수 있도록 해준다. e..