고차함수(Higher-order-function)중 forEach, filter, reduce에 대해 알아 보겠습니다. forEach for-in과 동일하게 각각의 Element들을 호출 합니다. Declaration func forEach(_ body: (Int) throws -> Void) rethrows Example let array = [1,2,3,4,5] for num in array { print(num) } //1 //2 //3 //4 //5 array.forEach { print($0) } //1 //2 //3 //4 //5 차이점 forEach에서는 break, continue 구문을 사용할 수 없고, return을 통해서 빠져나갈 수 있습니다. (continue처럼 동작함) for-i..
ScrollView 이벤트와 델리게이트에 대해 알아 보겠습니다. ScrollView 화면의 크기보다 더 큰 콘텐츠의 크기를 가진 컨텐츠를 표현하기 위한 뷰 입니다. 스크롤 뷰의 크기와 콘텐츠의 크기 뷰의 크기는 프레임(frame)을 이용해서 뷰 자체의 크기를 얻어 올 수 있습니다. 스크롤 뷰의 경우에는 콘텐츠의 크기와 스크롤 뷰에 나타나는 위치 정보를 다뤄야합니다. Content size : CGSize 구조체를 사용하고 콘텐츠의 크기를 설정 Content offset : CGPoint 구조체를 사용하고 콘텐츠가 스크롤 뷰에 표시되는 위치를 설정합니다. 곧 Bounds의 X좌표, Y좌표를 의미하는 것으로서 스크롤을 한다는 자체가 ContentOffset이 변하는 것입니다. Content inset : U..
Photos framework와 사용법에 대해 알아 보겠습니다. Photos 프레임워크 UIImagePickerController는 사용자가 카메라나 앨범에서 직접 사진을 고르는 방식으로 이미지를 얻어 오는 반면, photos 프레임워크는 UI를 이용한 사용자의 조작 업이 iOS에서 iCloud사진 라이브러리를 포함하여 사진 및 비디오에 직접 접근할 수 있습니다. 포토 프레임 워크를 사용하려면 Photo Framework를 직접 추가 합니다. 그 이후 import를 작성 합니다. import Photos Photos 프레임워크 모델 클래스에는 PHAsset, PHAssetCollection, PHCollectionList 3가지가 있습니다. 1. 애셋과 콜렉션 PHAsset 이미지, 비디오, 라이브 포토..
델리게이션 및 프로토콜 컴포지션에 대해 알아 보겠습니다. 델리게이션 델리게이션은 어느 한 타입의 인스턴스가 다른 인스턴스를 대신해서 동작하는 상황에 잘 맞는다. 동작을 위임하는 인스턴스는 델리게이트 인스턴스의 참조를 저장하고 있다가 어떠한 동작이 발생하면 델리게이팅 인스턴스는 계획된 함수를 수행하기 위해 델리게이트를 호출 합니다. 예제 프로토콜 구현 protocol DisplaynameDelegate { func displayName(name: String) } 델리게이트를 사용하는 Person구조체 struct Person { var displaynameDelegate: DisplayNameDelegate var firstName = "" { didSet { displaynameDelegate.disp..
Protocol-Oriented-Programming을 알아볼텐데 먼저 Protocol의 개념에 대해 알아보도록 하겠습니다. 프로토콜이란 프로토콜 정의 스위프트2를 소개하면서 세계 최초의 프로토콜지향 프로그래밍 언어라고 애플은 발표했다. 이런 이유로 프로토콜이 프로토콜지향 프로그램잉의 전부일 것이라고 생각할 수도 있으나, 이는 잘못된 생각이다. 프로토콜지향 프로그래밍은 단지 프로토콜뿐만이 아니라 더 많은 것을 포함하고 있습니다. 타 언어의 인터페이스와 유사하지만, 프로토콜은 대부분의 객체지향 언어에 있는 인터페이스보다 실제로는 훨씬 더 강력합니다. 그럼 프로토콜의 기초부터 시작해볼까요. 프로토콜 정의 프로토콜 정의를 위해서는 protocol키워드를 사용한다. protocol MyProtocol { //프..