본문 바로가기

Swift/문법 정리

(4)
클로저(Closure)를 알아보자 사실상 이번에 앱센터에서 팀 프로젝트를 진행하면서 가장 유용하게 사용했던게 클로저인 것 같다. 그동안 클로저를 공부하고 도대체 어디다가 써먹는거지하고 그냥 클로저말고 함수를 사용하면 된다고 생각했지만 이번에 네트워킹 작업과 view들간의 이동에서 원하는 위치에서 함수를 실행해야하는 경우에 정말 유용하게 사용했다. 특히 completion Handlers를 유용하게 사용해서 오늘 정리하고자 한다. 클로저에 대한 설명은 swift 공식 문서에 잘 나와있으니깐 해당 문서를 참고하길... https://devxoul.gitbooks.io/ios-with-swift-in-40-hours/content/Chapter-3/functions-and-closures.html 함수와 클로저 (Closure) · 40시간만..
Map 함수 이번에 앱센터 과제를 하다가 Map함수가 나와서 좀 알아보았다. Map 함수는 스위프트 라이브러리에서 제공하는 유용한 고차함수에 포함된다. (map말고 filter, reduce도 있다.) 그럼 고차함수란 무엇일까. 고차함수는 다른 함수를 전달인자로 받거나 함수실행의 결과를 함수로 반환하는 함수를 뜻한다. 즉, 함수를 전달인자로 받거나, 함수의 반환값이 함수인 함수를 고차함수라 한다. map(_:) 시퀀스의 요소에 대해 주어진 클로저를 매핑한 결과를 포함하는 배열을 반환합니다. Declaration func map(_ transform: (Self.Element) throws -> T) rethrows -> [T] Parameters 변환 매핑 클로저. 변환은 이 시퀀스의 요소를 매개변수로 받아들이고 동..
타입 캐스팅(업캐스팅 & 다운캐스팅) 타입 캐스팅과 타입 검사 1) 타입 캐스팅이란 메서드나 함수가 변환하는 값이 불명확하거나 예상되지 않은 타입의 값일 때 컴파일러는 특정 타입을 식별하지 못하는 경우가 발생한다. 이럴때는 as키워드를 사용하여 코드가 의도하는 값의 타입을 컴파일러가 알 수 있게 해야 한다. let myValue = record.object(forkey: "comment") as! String 해당 코드는 object메소드가 반환하는 값을 String타입으로 처리해야한다고 컴파일러에게 알려주는 코드이다. 이것을 우리는 타입 캐스팅(type casting, 형변환)이라고 한다. 2. 업캐스팅과 다운캐스팅 타입 캐스팅에는 업캐스팅과 다운캐스팅이라는 두 가지 형태가 있다. - 업캐스팅(upcasting): 특정 클래스의 객체가 상..
옵셔널 타입 옵셔널(optional) 옵셔널 데이터 타입은 대부분의 다른 프로그래밍 언어에는 없는 새로운 개념이다. 옵셔널 타입의 목적은 변수 또는 상수에 값이 할당되지 않은 상황을 처리하기 위해 안전하고 일관된 접근 방식을 제공하는 것이다. 1) 변수 선언 방법 var index: Int? 변수를 선언할 때, 데이터 타입 선언 다음에 "?" 문자를 두어 옵셔널이 되게 한다. 해당 코드는 index라는 이름의 Int타입의 변수를 옵셔널로 선언하는 코드이다. 이렇게 선언하고 나게 되면 index 변수는 정수값이 할당되거나 아무런 값도 할당되지 않을 수 있다는 것이다. 내부적으로 컴파일러와 런타임의 관점에서 볼 때 이런 옵셔널 데이터 타입의 변수는 nil의 값을 갖는다. 2) 래핑 & 강제 언래핑 (wrapping, u..