SWiFT

    [Swift] 접근제어자 (Access Control)

    접근제어 (Access Control) Access control restricts access to parts of your code from code in other source files and modules. 코드를 작성하는 한 파일에서 다른 파일에 있는 코드에 대한 접근을 명시적으로 작성해서 이를 관리 Module과 Source file module 과 source file 에 따라 다른 접근함 Module 코드를 배포하는 단일 단위로 하나의 프레임워크나 앱이 이 단위로 배포 다른 모듈에서 Swift의 import 키워드를 사용해 import 될 수 있음 프로젝트의 하위에 있는 targets도 각각 모두 하나의 module 임 ex) UIKit, Foundation Source File 각각의 ..

    [Swift] inout parameter

    함수 내의 매개변수 이름은 변경할 수 없다. 예를 들어 이렇게 코드를 작성하여 매개변수 name을 변경하려고 하면 name은 let 이기 때문에 변경할 수 없다는 에러가 발생한다! 함수 내의 매개변수 기본형은 let 인 것을 알 수 있다. 그래서 inout 키워드를 이용해서 변경이 가능한데, 사용 방법은 1. 매개변수의 자료형 앞에 inout 키워드를 붙이고 2. 변경할 값을 var 변수에 담은 다음에 3. 메소드를 호출 할 때 &를 변수(var 에 담은)에 넣어사용한다. 바뀐 매개변수 이름으로도 잘 출력 되는 것을 확인 할 수 있다. 이 Inout 키워드는 오픈소스를 활용할 때 종종 사용 있으니 알아두자!! * 학습영상 : https://www.youtube.com/watch?v=ge5BLzaTo8g&..

    [Swift] 타입 캐스팅(Type Casting) - in / as 키워드

    오늘은 타입 캐스팅에 관련해서 공부를 해보았다. 타입캐스팅은 두 연산자를 이용해서 사용한다. - is 연산자를 사용해서 인스턴스의 타입을 확인 - as 연산자를 사용해서 같은 계층에 있는 다른 슈퍼클래스나 서브클래스로 취급하는 방법 예를 들어 Animal이라는 슈퍼클래스가 선언되어 있고, Human과 Fish라는 Animal을 상속받고 있는 서브클래스가 있다. 슈퍼클래스 Animal은 이름 변수를 가진 생성자를 하나 갖고 있고 각 서브클래스에는 고유의 함수를 하나씩 갖고 있다고 해보자. class Animal { var name: String init(n: String){ name = n } } class Human: Animal { func code() { print("Tying away...") } ..

    [Swift] Optinoal이란? Wrapping/Unwrapping

    Optional 변수를 Optional 타입으로 사용하면 변수에 값이 있을 수도 없을 수도 있게 사용할 수 있다. 기본적으로 변수를 선언할 때 nil 값이 들어가면 안되는데 ? 를 붙이면 Optional로 선언되어 nil이여도 에러가 발생하지 않는다. 사용할 때는 타입뒤에 ? 를 붙이면 Optional type으로 선언된다. Optional 타입에 nil 값을 넣지 않아도 기본 값은 nil로 저장된다. Wrapping Optional 타입의 값은 기본적으로 wrap, 즉 싸여져있는 상태이다. 이 말은 Optional으로 선언된 값이 값이 있는건지 없는건지(nil) wrapping 되어 있어서 알 수 없는 상태이다. 그래서 Optional 타입으로 선언된 값을 그대로 프린트 하면 값 그대로 출력되는 것이 ..

    [Swift] 구조체(struct) 공부하기!

    처음 swift를 접했을 때 struct가 뭐지? 자바를 먼저 썼던 나는 class랑 뭐가 다르지 하며 궁금해했는데 공부를 해보니 사용법은 거의 유사하나 성능 및 쓰임새가 다른데, 간략히 설명하면 ( Pingu님 블로그 정리자료 참고 ) 공통점 1. 둘 다 값을 저장할 수 있는 프로퍼티를 선언할 수 있으며 2. 생성자를 사용할 수 있고, 차이점 - Class는 참조 타입이라 같은 클래스의 인스턴스 변수를 선언하고 값을 할당한 후 하나의 값을 변경하면 같은 참조를 한 변수도 변경된다. - Struct는 값 타입이며 새로운 변수를 할당할 때 마다 새로운 구조체가 할당된다. ( 각각 값이 존재해서 영향을 미치지 X ) 구조체는 그럼 어떻게 사용할까? 설명은 주석을 참고해주세요 ! struct Town { //..