본문 바로가기

전체 글

(224)
속성(Property)과 메서드(Method) - 1 클래스(class)와 구조체(struct) 속성(Property)과 메서드(Method)속성은 구조체와 클래스가 거의 차이가 없음메서드에서 차이가 발생  구조체, 클래스의 속성저장속성(Stored Properties) / 지연 저장 속성 저장속성(Stored Properties)값이 저장되는 일반적인 속성(변수)을 저장 속성이라고 함 저장속성은 구조체, 클래스 동일let(상수) 또는 var(변수)로 선언 가능 (만약 저장 속성을 let으로 선언하면 값을 바꿀 수 없음)저장 속성(변수)은 각 속성자체가 고유의 메모리 공간을 가짐초기화 이전에 값을 가지고 있거나, 생성자 메서드를 통해 값을 반드시 초기화 해야만 함  지연 저장 속성(Lazy Stored Properties)struct Bird1 { v..
초기화 (initialization) - 1 타입에 저장된 프로퍼티에 초기값을 설정하고 초기 설정을 수행한다.  공식문서보고 정리하고 싶었는데 어려움..결국 소들이님 블로그 봄   초기화(initalizers)란구조체 / 열거형 / 클래스의 인스턴스를 생성하는 것이 초기화로,초기화의 역할은 모든 프로퍼티를 기본값으로 초기화하는 것이다.인스턴스 내 기본값이 존재하지 않는 프로퍼티가 있을 경우(초기화가 끝나는 시점에 모든 프로퍼티가 기본값을 가지고 있지 않다면),초기화에 실패하고 인스턴스는 생성되지 않는다.  구조체(Struct)를 초기화 하는 방법 1. 선언과 동시에 프로퍼티에 기본값 넣어주기struct Human { let name: String = "Kaia" let age: Int = 32}name이란 프로퍼티에 kaia라는 값을, ..
클래스와 구조체 클래스클래스는 변수와 함수를 묶음으로 다룰 수 있음  클래스의 변수는 속성(property)클래스의 함수는 메서드(method)  구조체클래스와 다르지 않음  클래스와 구조체클래스와 구조체 둘 다, 메모리에 찍어낸 것을 인스턴스(instance)라고 함인스턴스는 실제로 메모리에 할당되어 구체적 실체를 갖춘 것이라는 의미스위프트에서는 클래스의 inscance를 특별히 객체(object)라고 부름 클래스의 인스턴스(객체)구조체의 인스턴스열거형의 인스턴스 가장 큰 차이는 메모리 저장 방식의 차이1) 구조체값형식(Value Type)인스턴스 데이터를 모두 스택(Stack)에 저장(복사시) 값을 전달할때마다 복사본을 생성 (다른 메모리 공간 생성)스택(Stack)의 공간에 저장, 스택 프레임 종료시 메모리에서 자..
스토리보드 사용해서 앱 만들기 cmd+shift+Y  디버그영역 올리고 내리고cmd+shift+L  라이브러리 열기ctr+opt+cmd+Enter  Assistant(코드 나옴)cmd+R  시뮬레이터  colorLiteral 이거 바뀜 확인해보기#colorLiteral( 소괄호열면 된다했는데 오류뜸 -> 아 이미 백그라운드컬러가 있어서 그랬네;; ㅈㅅ소괄호열고닫아야 뜨는데 노란색 ! 이거 뜨는데 눌러서 색 설정해주면 됨  연결되어있는거 코드를 걍 지우면 안되고 연결되어있는 연결선을 끊어준 뒤 코드 지워야함(자주하는 실수~) #imageLiteral( )요거 하면 대괄호 사라짐 닫아주면 됨 이미지 선택해서 넣어주면 됨  주사위 앱 만들기  가위바위보 앱 만들기더보기//// ViewController.swift// RPSGame///..
iOS Architecture / Framework 프레임워크: 개발자가 이미 짜여진 룰을 따라 작업을 하는 것라이브러리: 미리 만들어놓은 필요부분을 사용하는 것 공통점: 프로그램을 효율적으로(빨리) 만들기 위해, 다른 사람이 만들어 놓은 코드를 사용하는 것   import Foundation이 왜 필요할까,,? 아주 기본적인게 Foundation밑에 내용들은 외울 필요 없음.. Swift 언어 (실제로는 거의 아무것도 활용할 수 없음)언어의 기본적인 기능 제공print() 함수Int / String / Double 등 기본 타입(Basic Type)조건문(if) / 반복문(for/while)컬렉션 Array / Dictionary / Set이외에 기타 Swift 문법적인 기능 들Data / Date 타입도 있으나(Foundation이 없으면 사용 못함)..
열거형(Enumeration) 연관된 상수(케이스)들을 하나의 이름으로 묶은 자료형 열거형은 한정된 사례(정해진 갯수) 안에서 정의할 수 있을 때 사용 열거형을 사용하면 코드의 가독성과 안정성이 높아짐 => 명확한 분기 처리 가능 열거형은 타입이다 열거형은 항상 switch문으로 분기처리 가능   열거형의 원시값과 연관값 열거형의 원시값(Raw Values) 열거형의 원시값은 매칭되는 기본값(정수/문자열)을 정해, 열거형을 좀 더 쉽게 활용 가능 여러가지 형태로 원시값을 정의 가능 (Hashable한 - Int / String / Character / Double 등 가능)대부분 Int, String을 사용한다.enum Alignment: Int { case left case center case right}원시값 입..
스위프트의 컬렉션 관련 배열과 Set구분Array(배열)Set(집합)공통점데이터 바구니의 역할차이점데이터에 순서가 있음데이터에 순서가 없고 유일(요소는 Hashable해야함)사용하는 경우실제 프로젝트에서 대부분의 경우(대부분의 데이터는 표시하는 순서 필요)여러 데이터를 중복 저장할 필요가 없는 경우(데이터가 중복생성되는 경우, 막을 수 있음)  스위프트의 컬렉션실제 앱을 만들 때 필요한 컬렉션의 확장   KeyValuePairs - 딕셔너리와 유사한 형태이지만, 배열처럼 순서가 있는 컬렉션 스위프트 5.2 버전에 등장딕셔너리와 비슷한 형태지만, "순서"가 있는 컬렉션key값이 해셔블(hashable)일 필요없음 (검색 알고리즘상 빠르지 않음)key값이 동일한 것도 가능let introduce: KeyValuePairs = ["..
딕셔너리 / 해셔블(Hashable) 딕셔너리(Dictionary) 데이터를 키와 값으로 하나의 쌍으로 만들어 관리하는 컬렉션 대괄호로 묶음.각 요소(element)는 키(key)와 값(value)의 쌍을 콜론(:)으로 처리  - 딕셔너리의 문법 약속[] 대괄호로 묶는다. (쌍을 콜론으로 처리)키값은 유일해야함 / 중복 불가능(구분하는 요소이기 때문에) 밸류값은 중복 가능1개의 딕셔너리에는 동일한 자료형 쌍의 데이터만 담을 수 있음키값은 Hashble 해야함딕셔너리의 값(value)에 딕셔너리 또는 배열을 사용하여 중첩적으로 사용도 가능 예시) [String:[Stirng]]의 형태 즉, ["A": [1, 2, 3], "B": [4, 5, 6]]키값은 Hashable한 매커니즘을 채택을 하고 있어야만 키값으로 사용할 수 있다. 참고) Has..