목록Swift/Grammar (21)
아요 개발 일기
안녕하세요 :) 오늘은 프로토콜에대해 알아보도록 하겠습니다! 해당 포스팅은 꼼꼼한 재은씨의 Swift : 문법편을 참고하여 작성하였습니다. 프로토콜은 오브젝티브-C에서도 쓰였던 개념으로, 클래스나 구조체가 어떤 기준을 만족하거나 또는 특수한 목적을 달성하기 위해 구현해야하는 메소드와 프로퍼티 목록입니다. 프로토콜의 대표적인 기능은 다음과 같습니다. 1. 구조체나 클래스를 구현하는 과정에서도 프로토콜을 사용하여 구현할 메소드의 형식을 공통으로 정의할 수 있다 2. 프로토콜을 구현한 객체의 메소드나 속성을 은닉하고 프로토콜에서 선언된 명세의 내용만 제공하는 기능 한마디로 "특정 기능이나 속성에 대한 설계도" 라고 할 수 있습니다. 그럼 이제 프로토콜에 대해서 자세히 알아볼까요? Protocol 프로토콜을 특..
안녕하세요! 소진입니당. 오늘은 타입캐스팅에대해서 알아보도록 하겠습니다! 이 글은 꼼꼼한 재은씨 Swift: 문법편을 참고하여 작성하였습니다. 1. Type Casting 상속 관계에 있는 상위 클래스를 타입으로 선언해서 사용하는 것을 말합니다. 왜 굳이 클래스를 타입으로 선언할까요?? 상위 클래스 타입으로 선언하면 인자 값으로 사용할 수 있는 객체의 범위가 훨씬 넓어집니다. 즉, 상위 클래스의 프로퍼티나 메소드부터 그 상위 클래스를 상속 받는 하위 클래스의 프로퍼티와 메소드까지 사용할 수 있습니다. 아래 코드를 보고 이해해 봅시다! class Vehicle { var currentSpeend = 0.0 func accelerate() { self.currentSpeend += 1 } } class Ca..
안녕하세요! 오늘은 Property에 대해 공부해보겠습니다!! 이 글은 꼼꼼한 재은씨 Swift: 문법편을 참고하여 작성하였습니다. Property 값을 저장하기 위한 목적으로 클래스와 구조체 내에서 정의된 변수나 상수를 말합니다. 간단히 말하자면 값을 제공하는 역할을 하며, 프로퍼티 중 일부는 값을 저장하지는 않지만 값을 제공하는 특성도 가지고 있습니다. 어떤 프로퍼티들이 있는지 먼저 간단히 볼까요??! 종류 저장 프로퍼티 입력된 값을 저장하거나 저장된 값을 제공하는 역할 상수 및 변수를 사용해서 정의 가능 클래스와 구조체에서는 사용이 가능하지만, 열거형에서는 사용할 수 없음 연산 프로퍼티 특정 연산을 통해 값을 만들어 제공하는 역할 변수만 사용해서 정의 가능 클래스, 구조체, 열거형 모두에서 사용 가..
안녕하세요! 오늘은 Function(함수)에 대해 알아보도록하겠습니다!! :D 이 글은 The Swift Programming Laguage guide - Function 과 꼼꼼한 재은씨 Swift: 문법편을 참고하여 작성하였습니다. Function (함수) 프로그램의 실행 과정 중에서 독립적으로 처리될 수 있는 부분을 분리하여 구조화한 객체를 의미 즉, 외부에의존하는 부분 없이 툭 떼어 분리할 수 있는 실행단위를 일종의 캡슐처럼 포장해 놓은 것 함수 입력 값 = 인자 값 = 매개 변수 = Parameter(파라미터) 인자가 없는 형태 인자가 하나 이상인 형태 함수 결과 값 = 반환 값 = 리턴 값 특정 값을 반환하는 형태 : 둘 이상의 값을 반환해야하면 집단 자료형 하나에 담아서 반환해야합니다. 반환..
안녕하세요! 소진입니다 :) 오늘은 정적 바인딩(Static binding)과 동적 바인딩(Dynamic binding)에 대해 알아보겠습니다! binding (바인딩)? 프로그램 구성 요소의 성격을 결정 ex) 변수의 데이터 타입이 정해지는 것 함수 주소를 찾아가는 과정 두 가지가 있군요! 먼저 프로그램 구성 요소의 성격을 결정하는 바인딩에 대해서 알아보기전에, 정적, 동적 타입에 대해서 알아야하기때문에! 알아보고 가겠습니당 ㅎㅎ 정적 타입 (Static Type) - 컴파일 시에 타입이 결정 - 변수를 선언할 때, 반드시 앞에 타입을 명시해야 하는 언어들은 모두 정적 타입 시스템에 속합니다. ex ) C, C++, Java, Swift ... 장점 . 컴파일 시에 타입에 대한 정보를 결정하기 때문에 ..
안녕하세요 ㅎㅎ 오늘은 Closures에대해 알아보도록하겠습니다 :) 해당 글은 Closures 클로저는 코드 블럭으로 C와 Objective-C의 블럭(block)과 다른 언어의 람다(lambdas)와 비슷합니다. (익명 함수 = 람다 함수) 즉, 자신이 정의되었던 문맥으로부터 모든 상수와 변수의 값을 캡쳐하거나 레퍼런스를 저장하는 익명함수라고 할 수 있습니다. 일회용 함수란? 한 번만 사용할 구문들의 집합이면서, 그 형식은 함수로 작성되어야 하는 제약조건이 있을 때 만들어 사용할 수 있는 함수 익명(Anonymous) 함수 굳이 함수의 이름 사용할 필요 없어서 생략 캡처? 원본 값이 사라져도 클로저의 body 안에서 그 값을 활용할 수 있다. 스위프트에서 클로저라고 부르는 객체는 대부분 세 가지 경우..
안녕하세요!! :D 오늘은 클래스와 구조체, 열거형에 관해 공부해보겠습니다1!!! 오늘두 화이팅! 상수와 변수 -> 프로퍼티(Property) 함수 -> 메소드(Method) Class 일반적으로 단일 상속이 가능하지만, 프로토콜을 사용하면 다중 상속도 가능 참조타입 (=reference type) (call by reference) 형 변환(Type Casting)과 관련된 기능과 파괴자(Deinitializer)등의 기능을 가질 수 있다. iOS 프레임 워크의 대부분의 큰 뼈대는 모두 클래스로 구성 메모리의 Heap 영역에 존재 class Helo { var name:String = "Sojin"; func say(){ print("Hello, " + name + "!"); } } class Hell..
guard & assert 애플리케이션이 동작 도중에 생성하는 다양한 결과값을 동적으로 확인하고 안전하게 처리할 수 있도록 확인하고 빠르게 처리할 수 있습니다. # guard 문 if문과 마찬가지로 주어진 표현식의 결과가 참인지 거짓인지에 따라 구문의 실행 여부를 결정짓는 방식의 조건문 보통 함수나 메소드에서 사용 심각한 오류가 발생할 경우, 전체 구문을 조기 종료(Early Exit)하기 위한 목적 guard의 else 블럭 내부에는 특정 코드블럭을 종료하는 지시어 (return, break 등)가 꼭 있어야 함 타입 캐스팅, 옵셔널과도 자주 사용 그 외 단순 조건 판단후 빠르게 종료할 때도 용이 //MARK: - Early Exit func functionWithGuard(age: Int?) { gu..