전체 글 51

[iOS]2025.03.25 코드베이스 UI

코드베이스로 앱을 만들면 인터페이스도 SwiftUI 를 사용하는 줄 알았는데, 스토리보드의 SceneDelegate에 몇가지 추가하면 된다는 것을 배웠음.Main 이라는 이름의 스토리보드 삭제. Move to Trash로 삭제.info.plist 에서 main 검색하여 삭제.프로젝트 파일에서 target 선택 후 build settings로 이동. main 검색하여 삭제. SnapKit코드베이스로 UI를 작성할 때, 조금 더 간결한 문법을 사용하도록 도와주는 서드파티 라이브러리.*Dynamics 는 해제!

Code 2025.03.25

[iOS] 2025.03.24 클래스와 구조체

클래스와 구조체의 차이.클래스를 통해서 만들어진 인스턴스는 레퍼런스 타입.구조체를 통해서 만들어진 인스턴스는 밸류 타입. 클래스와 구조체 선택기준.값을 복사해서 사용하는 경우 - > 구조체(struct)* 값을 복사해서 가지만, 원본값은 변하지 않음!참조를 공유하며 상태를 변경해야 하는 경우 -> 클래스(class)* 메모리 주소가 복사되면서 원본과 복사본이 같은 인스턴스 값을 가지게 되면서 원본값이 변함. 더 정리해야할 부분들.  동적 메모리 할당프로그램 실행 중(RunTime)에 필요한 만큼 메모리를 할당하는 방식. 메모리메모리는 주소로 관리됨.메모리가 증가한다는 표현은 메모리 주소값이 커지는 방향으로 할당된다는 의미.CPU는 주소를 이용해 데이터 저장 위치를 찾음. "메모리가 증가한다" 의 정확한 ..

iOS 2025.03.24

[iOS] 2025.03.21 문법(메소드)

메소드class, struct, enum 등에서 사용되는 함수를 메소드(Method)라고 함.인스턴스 메소드타입 메소드 인스턴스 메소드(Instance Method)인스턴스를 통해서 호출되는 메소드.class Person { var name: String = "Default Name" var age: Int = 15 func introduce() -> String { return "안녕하세요. 제 이름은 \(name)이고, 나이는 \(age)살 입니다." } func printIndtroduce() { print(introduce()) }}let person = Person() // person 상수(person 이라는 인스턴..

문법 2025.03.24

[iOS] 2025.03.18 문법(프로퍼티)

Property : class, struct, enum 등에서 사용되는 변수나 상수를 프로퍼티라고 함.저장 프로퍼티연산 프로퍼티타입 프로퍼티프로퍼티 옵저버지연저장 프로퍼티 저장 프로퍼티(Stored Property)데이터를 저장하는 프로퍼티.var, let 모두 사용할 수 있음.class, struct 등에서 데이터를 저장하기 위한 변수와 상수를 의미.enum에서는 저장 프로퍼티를 사용할 수 없음.(빌드 오류 발생)초기값을 가질 수 있음.struct Person { var name: String // 값을 저장하는 저장 프로퍼티 var age: Int = 0 // 값을 저장하는 초기값이 있는 저장 프로퍼티} 연산프로퍼티(Computed Property)값을 직접 저장하지 않고 계산된 값을 제공..

문법 2025.03.18

[iOS] 2025.03.18 문법(struct)

struct연관된 상태는 변수, 상수에 저장하고 행동은 함수를 정의한 후 그룹화하여 데이터타입으로 사용할 수 있음.프로퍼티 : 구조체, 클래스 안에 있는 변수, 상수메소드 : 구조체, 클래스 안에 있는 함수구조체의 인스턴스를 생성하여 사용할 수 있음.구조체 안에서 사용되는 변수와 상수인 프로퍼티에는 default 값을 정해줄 수 있음.Memberwise Initializer 를 제공함.직접 init을 정의하지 않아도 모든 프로퍼티의 초기화를 자동으로 생성해주는 기능.구조체를 사용하여 만들어진 인스턴스는 Value Type임.구조체의 인스턴스는 값이 복사되므로, 서로 다른 값으로 처리하게 됨. *메소드에서 프로퍼티를 변경하려면 mutating 키워드를 사용해야 함.상속 불가능.인스턴스를 let으로 만들면 ..

문법 2025.03.18

[iOS] 2025.03.18 문법(class, init)

class연관된 상태는 변수, 상수에 저장하고, 행동은 함수를 정의한 후 그룹화하여 데이터타입으로 사용할 수 있음.프로퍼티와 메소드로 구성되어 있음.프로퍼티 : struct, class 안에 있는 변수, 상수메소드 : struct, class 안에 있는 함수class의 인스턴스를 생성하여 사용할 수 있음.class 안에서 사용되는 변수와 상수인 프로퍼티에는 default 값을 정해줄 수 있음.class의 인스턴스를 생성할 때 반드시 초기화를 해줘야 함.init 초기화를 제공해야 함.모든 프로퍼티에 default값을 제공한다면 init 초기화를 생략할 수 있음.모든 프로퍼티가 Optional인 경우 init 초기화를 생략할 수 있음.초기화를 도와주는 convenience initializer를 제공함.더보..

문법 2025.03.18

[iOS] 2025.03.18 문법(인스턴스)

인스턴스인스턴스는 class, struct, enum과 같은 설계도를 기반으로 실제 메모리에 생성되는 실체.class, struct, enum은 설계도의 역할인스턴스는 설계도를 보고 직접 만들어져서 메모리에 저장되어 있는 값. 인스턴스의 init인스턴스를 생성할 때 상태를 초기화 하여 생성해야 함.붕어빵을 만드려면 반죽과 주재료가 필요한 것 처럼, 인스턴스를 만들 때 사용되는 변수, 상수(프로퍼티)의 값을 정해줘야 함.필요한 재료(프로퍼티)를 넣어서 초기화 하여 생성함.init 키워드를 사용하여 모든 변수, 상수(프로퍼티)를 초기화 해야함.변수나 상수에 기본값을 정해주거나, 값이 없음을 나타내는 Optional 타입으로 선언하면 초기화하지 않아도 됨.// enum에서의 initenum Season: St..

문법 2025.03.18

[iOS] 2025.03.13 문법(열거형)

Enum(열거형)열거형은 Swift에서 특정 주제나 종류에 따라 묶을 수 있는 값들을 그룹화하고 정의하여 데이터타입으로 사용할 수 있음.관련된 값을 그룹화할 수 있음.enum 키워드와 코드블록을 사용하여 정의할 수 있음.그룹화된 값은 enum의 코드블록 내에서 case를 사용하여 정의할 수 있음.타입 안정성을 보장하고, 의도를 명확하게 파악할 수 있음.정의한 enum은 데이터타입으로 사용할 수 있음.enum을 사용하여 만들어진 인스턴스는 Value Type.// 기본 선언 방법// enum 뒤에 열거형의 이름을 작성하고 코드블록 안에서 그룹화 된 값들을 case로 작성함.enum Season { //Season enum을 선언. case spring case summer cas..

문법 2025.03.13