32YB SOPT/swift 문법 스터디 7

[SOPT] 야우쓰_7주차 (메소드, 상속)

야우쓰란? "야 우리도 스위프트 할 수 있어" in SOPT iOS 7주차의 키워드는 메소드와 상속이다. - 메소드 메소드부터 알아봐야겠죠? 메소드란 특정 타입의 클래스, 구조체, 열거형과 관련된 함수를 메소드라고 한다. 저번 시간에 공부한 프로퍼티가 "값"이라면 메소드는 "함수"를 의미한다. 1. 인스턴스메소드와 타입 메소드 인스턴스 메소드는 말 그대로 인스턴스에 속한 메소드다. 매소드를 통해 인스턴스 내의 값을 제어하거나 변경할 수 있다. 자주 쓰는 self 가 그 예시다. //아래와 같이 클래스를 선언한 뒤 인스턴스 메소드를 사용할 수 있다. class Jiwon { var shin = 0 func Pretty() { shin += 1 } func Gorgeous() { shin += 2 } fun..

[SOPT] 야우쓰_6주차 (속성, 프로퍼티)

야우쓰란? "야 우리도 스위프트 할 수 있어" in SOPT iOS 6주차의 키워드는 속성이다. - 프로퍼티 우선 프로퍼티가 무엇일까 ? 프로퍼티는 클래스, 구조체, 열거형과 관련된 값이다. 코드를 짜면서 선언했던 변수나 상수가 프로퍼티라는 것이다. swift 에서 프로퍼티는 3가지로 구분된다. 1. 저장 프로퍼티 저장 프로퍼티는 단순히 값을 저장하는 프로퍼티다. 내가 흔히 생각했던 프로퍼티가 이에 해당한다. let 이나 var 를 사용하여 상수, 변수를 선언한다. let을 사용한다면, 구조체나 클래스 안에서 let의 값을 변경할 수 없다. lazy는 지연 저장 프로퍼티로, 그 값이 사용되기 전까진 값을 갖지 않는다. 후에 값이 정해지기 때문에 보통 lazy와 var 를 같이 사용한다. 2. 연산 프로퍼..

[SOPT] 야우쓰_5주차(구조체 vs 클래스, 메모리 구조)

야우쓰란? "야 우리도 스위프트 할 수 있어" in SOPT iOS 5주차의 키워드는 구조체 vs 클래스 메모리 구조다. 너무 간단하게 조사하였습니다. 제송합니당,, - 메모리 구조 swift 의 메모리 구조는 Code, Data, Heap, Stack 으로 이루어진다. Code 영역 우리가 작성한 소스 코드가 기계어 형태로 저장되어 있으며, 컴파일 타임에 결정되고, read-only 형태로 저장된다. Data 영역 전역 변수, static 변수가 저장된다 프로그램 시작과 동시에 할당되며, 프로그램이 종료되어야 메모리에서 해제된다. 변수 값들이 새로운 값을 받을 수 있으니 read-write 로 지정된다. Heap 영역 ARC에 의하여 Reference Countin 이 관리되는 영역이다. 유일하게 ru..

[SOPT] 야우쓰_4주차 (컬렉션 타입, array, dictionary, set, 값타입, 참조타입)

야우쓰란? "야 우리도 스위프트 할 수 있어" in SOPT iOS 4주차의 키워드는 컬렉션 타입이다. - 컬렉션 타입 (Collection Types) 컬렉션타입(collection types)이란 이름 그대로 데이터를 수집한다는 의미이다. array, set, dictionary 이렇게 3가지 타입을 지원한다. - 배열 (Array) 배열은 [element] 로 사용할 수 있으며, 아래와 같이 선언할 수 있다. 또한 값을 추가할 때는 append 를 사용하여 추가한다. //배열 선언 var jiwon = [Int]() //var 로 선언해야 값 변경 가능 jiwon.append(3) //Prints [3] //특정 위치에 삽입하고 싶다면 insert 를 사용한다 //ex) jiwon.insert(0,..

[SOPT] 야우쓰_3주차 (열거형 튜플, enum, Associated Type)

야우쓰란? "야 우리도 스위프트 할 수 있어" in SOPT iOS 3주차의 키워드는 열거형 튜플이다. - 튜플 튜플(tuple)이란 셀 수 있는 수량의 순서 있는 열거다. swift 에선 여러 개의 데이터를 모은 집합으로 추가와 삭제가 가능하다. 가장 큰 특징은 다른 타입을 사용해도 상관없다! 그렇다면 바로 예시를 살펴보자! //1. var tuple : (String, Int, Bool) = ("My age is", 20, false) var ttuple = ("jiwon is", "beautiful", true) //Prints //("My age is", 20, false) //("jiwon is", " beautiful", true) //2. var tuple : (String, Int, Boo..

[SOPT] 야우쓰_2주차 (옵셔널 삼항연산자)

야우쓰란? "야 우리도 스위프트 할 수 있어" in SOPT iOS 2주차의 키워드는 옵셔널 삼항연산자다. - optional 직역하면, optional 이란 wrapped 된 값이나 값의 부재를 나타낸다. 구체적으로 말하자면, 반환하고자 하는 값을 optinal 로 한 번 더 wrapped 하는 것을 의미한다. 왜냐하면 선언한 변수에 값이 없을 수도 있기 때문에, nil 값을 고려한 개념이라고 생각해줄 수 있다. 따라서 값이 있다면 값이 있다고 판단하고, 정상적인 변환이 불가능하다면 nil 값을 반환하고 프로그램이 종료된다. ++ 일반적인 변수, 상수에는 nil 값을 직접적으로 대입할 수 없다. 따라서 옵셔널 타입으로 설정해주어야 nil 대입이 가능하다. var i = 0 i = nil print(i)..

[SOPT] 야우쓰_1주차 (swift 타입 / 기본 연산자 / 조건문 / 반복문 )

야우쓰란? "야 우리도 스위프트 할 수 있어" in SOPT iOS 1주차의 키워드는 타입 / 기본연산자 / 조건문 / 반복문 이다. - 타입 1. bool bool 은 true 와 false 만을 값으로 가진다. var godotHasArrived = false let numbers = 1...5 let containsTen = numbers.contains(10) print(containsTen) // Prints "false" let (a, b) = (100, 101) let aFirst = a < b print(aFirst) // Prints "true" 위는 애플디벨로퍼 공식 문서다. 그렇다면 나는 궁금한 점이 생겼다. 왜 containsTen 이나 aFirst 를 bool 이라고 정의하지 않았..