🦜 Swift 17

[iOS] 전역변수, 클래스간 데이터 전달 - 3

1. 전역변수 설정 및 참조 AppDelegate 에 다음과 같은 globalData 와 같은 전역변수가 있다고 하자. 이를 다른 화면에서 출력해보겠다. @main class AppDelegate: UIResponder, UIApplicationDelegate { // 전역변수 선언하는 부분 - 변수, 배열, 딕셔너리, 구조체, 클래스 var globalData: String = "" 뷰 컨트롤러 쪽이다. AppDelegate 를 참조하는 방법은 다음과 같이 꼭 써줘야 한다. (이게 룰이다) import UIKit class NvMainViewController: UIViewController { // 전역변수를 참조하는 방법 let appDelegate = UIApplication.shared.dele..

🦜 Swift 2023.05.14

[iOS] 뷰 컨트롤러의 수명 주기, 팝업창 띄우기 - 2

뷰 컨트롤러의 수명 주기 // // viewDidLoad : 뷰가 생성될 때 한번만 호출됨. (초기화 용도) // viewWillAppear : 뷰가 화면에 보일 때마다 호출됨. (화면 갱신 용도) // viewDidAppear : 뷰가 화면에 보이고 나서 매번 호출됨. // viewWillDisappear : 뷰가 화면에 사라지기 전마다 호출됨. (데이터 전달) // viewDidDisappear : 뷰가 화면에 사라지고 나서 매번 호출됨. // viewWillLayoutSubviews : 컨트롤(서브뷰)들의 레이아웃을 잡기 전에 호출됨. // viewDidLayoutSubViews : 컨트롤들의 레이아웃을 잡고 나서 호출됨 위와 같은 수명 주기로 ..

🦜 Swift 2023.05.13

[TIL] UIView, UIViewController, Delegate

본 블로그 글은 chatGPT 가 준 코드와 iOS 개발 기초 개념들을 chatGPT 를 통해 공부한 글입니다. ChatGPT 90%, 기타 블로그 10% 참고하여 틀린 내용이 있을 수도 있습니다. 틀린 내용 있을 시, 지적해주시면 감사하겠습니다. UIView 와 UIViewController 에 대한 정의를 살펴봅시다. UIView 와 UIViewController UIView 이는 화면을 구성하는 요소들의 기본 클래스이며, 위치와 크기를 갖는 사각형으로, 배경색을 가지고 있고 문자나 이미지 등의 컨텐츠를 가지는 것이 가능합니다. • Label, Image, Button, 기타 인터페이스 요소를 표시하려면, UIKit Framework가 제공하는 뷰 하위클래스를 사용하면 됩니다. UIViewContro..

🦜 Swift 2023.05.05

[iOS] weak var

React 와 Flutter 를 경험해 본 나는 weak var 부터 보자마자 굉장한 낯설음을 느꼈다. 이에 대해 weak var 부터 모르는 것 하나하나 chatGPT 에 물어보았다. 온전히 chatGPT 를 통해 공부해서 정리한 내용을 기록해본다. weak var 선언하는 이유 iOS 개발에서 `weak var`로 선언하는 이유는 메모리 관리와 관련이 있습니다. Swift에서 메모리 관리는 ARC (Automatic Reference Counting)에 의해 처리됩니다. ARC는 인스턴스가 얼마나 많은 참조자를 가지고 있는지 추적하고, 해당 인스턴스가 더 이상 참조되지 않을 때 인스턴스를 자동으로 해제하여 메모리를 해제합니다. 일반적으로 iOS 애플리케이션에서는 강한 참조(`strong referen..

🦜 Swift 2023.05.04

[Swift] 인스턴스의 생성과 소멸

인스턴스의 생성과 소멸 이니셜라이저와 디이니셜라이저 init, deinit 스위프트의 모든 인스턴스는 초기화와 동시에 모든 프로퍼티에 유효한 값이 할당되어 있어야 한다. 프로퍼티에 미리 기본값을 할당해두면 인스턴스가 생성됨과 동시에 초기값을 지니게 된다. class PersonA { // 모든 저장 프로퍼티에 기본값 할당해야 함! var name: String = "unknown" // var name: String // 이렇게 쓰면 error -> 기본값 없음 var age: Int = 0 var nickname: String = "nick" } let jason: PersonA = PersonA() // 인스턴스 생성될 때 모든 저장 프로퍼티에 기본값 할당됨 jason.name..

🦜 Swift 2022.11.20

[Swift] 상속

상속 스위프트의 상속은 클래스, 프로토콜 등에서 가능하다 열거형, 구조체는 상속이 불가능하다 스위프트는 다중상속을 지원하지 않다 이번 파트에서는 클래스의 상속에 대해서 알아보자 class 이름: 상속받을 클래스 이름 { 구현부 } class Person { var name: String = "" func selfIntroduce() { print("저는 \(name)입니다") } // final 키워드를 사용하여 재정의를 방지할 수 있습니다 // 즉 자식 클래스에서 상속 받았을때 override 방지 final func sayHello() { print("hello") } // 타입 메서드 // 재정의 불가 타입 메서드 - static // 자식 클래스에서 재정의 불가 static func typeMet..

🦜 Swift 2022.11.20

[Swift] 프로퍼티 감시자

// 프로퍼티 감시자 struct Money { // 프로퍼티 감시자 사용 var currencyRate: Double = 1100 { willSet(newRate) { print("환율이 \(currencyRate)에서 \(newRate)으로 변경될 예정입니다") } didSet(oldRate) { print("환율이 \(oldRate)에서 \(currencyRate)으로 변경되었습니다") } } // 프로퍼티 감시자 사용 var dollar: Double = 0 { // willSet의 암시적 매개변수 이름 newValue !!! willSet { print("\(dollar)달러에서 \(newValue)달러로 변경될 예정입니다") } // didSet의 암시적 매개변수 이름 oldValue didS..

🦜 Swift 2022.11.20

[Swift] 프로퍼티

struct Student { // 인스턴스 저장 프로퍼티 var name: String = "" var `class`: String = "Swift" var koreanAge: Int = 0 // 인스턴스 연산 프로퍼티 var westernAge: Int { get { return koreanAge - 1 } set(inputValue) { koreanAge = inputValue + 1 } } // 타입 저장 프로퍼티 static var typeDescription: String = "학생" // 인스턴스 메서드 // func selfIntroduce() { // print("저는 \(self.class)반 \(name)입니다") // } // 읽기전용 인스턴스 연산 프로퍼티 var selfIntro..

🦜 Swift 2022.11.20