swift3 30

swift3 스위프트3 고차함수

공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!!포스팅 내용이 찾아주신 분들께 도움이 되길 바라며더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^ 이번 포스팅에서는 고차 함수에 대해 공부합니다. 고차 함수 : 전달 인자로 함수를 전달 받거나, 함수 실행의 결과로 함수를 반환하는 함수를 말합니다. swift3 에서는 map, filter, reduce 고차 함수를 기본으로 제공합니다. - map : 컨테이너 내부의 기존 데이터를 변형해 새로운 컨테이너를 생성합니다.let num : [Int] = [10, 20, 30, 40, 50]예제) for in 문과 비교 var twoTimesNum : [Int]1. for in 문 사용for i in num { twoTimesNum.append( i*2 )..

swift3 스위프트3 오류처리 throws

공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!!포스팅 내용이 찾아주신 분들께 도움이 되길 바라며더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^ 이번 포스팅에서는 오류처리에 대해 공부합니다. 오류를 표현하는 방법은 Error Protocol 과 (주로) 열거형을 통해서 오류를 표현합니다. ex)enum 오류종류이름 : Error { case 오류종류1 case 오류종류2 case 오류종류3 ...} 예제) 피자 자판기에서 동작할 수 있는 오류의 종류를 표현한 enumenum MachineError : Error { case notEnoughMoney ( moneyNeed : Int ) case beSoldOut case invalidInput} * 함수에서 오류가 발생했을 때 발생한 오류처리 ..

swift3 스위프트3 익스텐션(extension)

공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!!포스팅 내용이 찾아주신 분들께 도움이 되길 바라며더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^ 이번 포스팅에서는 익스텐션에 대해 공부합니다. 익스텐션이란 : 클래스, 구조체, 열거형, 프로토콜 타입에 새로운 기능을 추가할 수 있는 기능 기능을 추가하려는 타입의 구현된 소스코드를 알지 못하거나, 볼 수 없다고 해도 타입만 알고 있다면 그 타입의 기능을 확장할 수도 있음. 익스텐션으로 추가할 수 있는 기능들 - 연산 타입 / 연산 인스턴스 프로퍼티 - 타입 / 인스턴스 메소드 - 이니셜라이저 ( 생성자 in JAVA ) - 서브스크립트 - 중첩 타입 - 특정 프로토콜을 준수할 수 있도록 기능 추가* 이미 존재하는 기능을 재정의 할 수는 없습니다. ..

swift3 스위프트3 protocol 프로토콜, 프로토콜 상속에 대해

공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!!포스팅 내용이 찾아주신 분들께 도움이 되길 바라며더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^ 먼저 구글 사전의 정의입니다. 그렇다면 스위프트3에서 프로토콜은 어떻게 쓰일까요. : 특정한 역할을 수행하기 위한 메소드, 프로퍼티, 이니셜라이저(생성자)들의 요구사항을 정의하는데 사용합니다.클래스, 구조체, 열거형은 프로토콜을 채택해서 프로토콜의 요구 사항들을 실제로 구현할 수 있습니다.어떤 프로토콜의 요구 사항을 모두 따르는 타입을 보고 '어떤 프로토콜을 모두 준수한다'라고말합니다. 프로토콜의 요구 사항을 충족시키기 위해서는 포로토콜이 지시하는 기능을모두 구현해야 합니다. 프로토콜 정의protocol ProtocolName { // 정의} 예제)p..

swift3 스위프트3 assert, guard

공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!!포스팅 내용이 찾아주신 분들께 도움이 되길 바라며더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^ 이번 포스팅에서는 assert 와 guard 에 대해 공부합니다. 애플리케이션이 동작하는 중에 생성하는 다양한 결과 값들을 동적으로 확인하고 안전하게 처리할 수 있도록확인하고 빠르게 처리할 수 있습니다. - assert : 디버그 모드에서만 동작하고, 배포된 애플리케이션에서는 제외됩니다. * 주로 디버깅 중 조건 검증을 위해 사용합니다.assert(_:_:file:line:) 함수를 사용합니다. ex) var intValue : Int = 0 assert(intValue == 0, "intValue != 0") intValue = 1 assert(in..

swift3 스위프트3 타입 캐스팅 : 업 캐스팅과 다운 캐스팅

공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!!포스팅 내용이 찾아주신 분들께 도움이 되길 바라며더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^ 이번 포스팅에서는 타입 캐스팅에 대해서 공부하는데요.다른 언어에서는 캐스팅이라고 하면 강제 타입 변환을 생각하는데요.스위프트에서 타입 캐스팅을 다른 개념입니다. 스위프트에서 타입 캐스팅은 인스턴스의 타입을 확인하는 용도로 사용됩니다.또는 클래스의 인스턴스를 부모 또는 자식 클래스의 타입으로 사용할 수 있는지확인하는 용도로 사용됩니다.키워드는 is, as 를 사용합니다. 예제 클래스들 )class Animal { var name : String = "" func crySound() { print("동물은 각각의 독특한 울음소리를 가지고 있습니다") }}..

swift3 스위프트3 옵셔널 체이닝 / nil 병합 연산자란?

공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!!포스팅 내용이 찾아주신 분들께 도움이 되길 바라며더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^ 이번 포스팅에서는 옵셔널 체이닝과 nil 병합 연산자에 대해서 공부합니다. - 옵셔널 체이닝 : 옵셔널 요소 내부의 프로퍼티로 또 옵셔널이 연속적으로 연결되는 경우에 유용하게 사용할 수 있습니다. 예제)class Student{ var name : String var school : School? init ( name : String) { self.name = name }} class School { var schoolName : String var rank : String? var grade : String? init(schoolName : Stri..

swift3 스위프트3 인스턴스의 생성, 인스턴스 소멸

안녕하세요 알통몬입니다.공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!!포스팅 내용이 찾아주신 분들께 도움이 되길 바라며더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^ 이번 포스팅에서는 swift3 인스턴스의 생성과 인스턴스의 소멸에 대해서 공부합니다. 스위프트에서 모든 인스턴스는 초기화를 하는 동시에 모든 프로퍼티에 유효한 값이 할당되어야 하는데요. 프로퍼티에 미리 기본 값을 할당해두면 인스턴스가 생성되면서 동시에 초기 값을 지니게 돼요. 예제 코드) class Poketmon { var name : String = "알려지지 않음" var age : Int = 0 } // 만약 기본값을 할당해주지 않는다면 오류가 발생합니다. let altongmon : Poketmon = Poketmon(..

swift3 스위프트3 상속

안녕하세요 알통몬입니다.공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!!포스팅 내용이 찾아주신 분들께 도움이 되길 바라며더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^ 이번 포스팅에서는 상속에 대해서 공부합니다. 스위프트에서 상속은 클래스 또는 프로토콜 등에서 가능합니다.열거형, 구조체에서는 사용할 수 없습니다. 형태 :class ChildClass : ParentClass { // 구현} 예제)부모 클래스class Espresso { var name : String = "" func info() { print("\(name) 입니다") } class func selectShot() { print("샷은 변경 가능합니다.") } final func usedBean() { print("브라질 산..

swfit3 스위프트3 프로퍼티와 감시자

안녕하세요 알통몬입니다.공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!!포스팅 내용이 찾아주신 분들께 도움이 되길 바라며더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^ 이번 포스팅에서는 프로퍼티와 프로퍼티 감시자에 대해 공부합니다. 프로퍼티는 구조체나 클래스, 열거형에서 구현하는데요.타입이랑 연관된 값을 표현할 때 사용합니다. 프로퍼티에는저장 프로퍼티연산 프로퍼티인스턴스 프로퍼티타입 프로퍼티가 있으며 열거형에는 연산 프로퍼티만 구현할 수 있고,연산 프로퍼티는 var 키워드를 통해서만 구현할 수 있습니다. 예제) Struct Example { // 저장 프로퍼티 var name : String = "" var age : Int = 0 // 인스턴스 연산 프로퍼티 var ageInForeignCo..