Scope❓Swift에서 Scope는 변수나 상수에 접근할 수 있는 코드의 영역을 의미한다.변수는 코드에서 선언이 되어야, 그 이하의 코드에 접근이 가능하다.상위스코프에서 선언된 변수와 상수에 접근가능하며, 하위스코프에는 접근할 수 없다.기준은 중괄호라고 생각하면 된다. 중괄호 내에서 밖에 변수는 접근이 가능하다.하지만 밖에서 중괄호 내의 변수로 접근은 불가능하다.func greeting1() { print("Hello") var myName = "홍길동" print(myName) print(name) if true { print(myName) print(name) }}greeting1() // 여기까지만 실행하면 name이라..
📌 함수의 오버로딩같은 함수의 이름을 여러 함수가 같이 쓰는 것이다.= 함수의 이름 재사용 재사용하는 이유❓비슷한 기능을 구현할 때 함수의 이름을 여러개 만들면 이름을 전부 외워야한다.함수를 구분해서 실행하는 방법에는 파라미터의 타입을 다르게 입력해서 해당하는 함수를 실행한다.func doSomething(value: Int) { print(value)}func doSomething(value: Double) { print(value)}func doSomething(value: String) { print(value)}func doSomething(_ value: String) { print(value)}func doSomethging(value1: String, value2: I..
📌 함수의 기본 개념함수(Function)은 어떤 기능을 하는 코드 모음이라고 보면 된다. 함수는 항상 2단계로 실행된다.// 1) 함수 정의문func sayhello() { print("Hello, world!") print("Hello, Swift!") print("Hello, what's up, bro!")}// 2) 함수 실행문(call)sayhello()1. 기능을 정의한다.2. 호출한다. (뒤에 소괄호를 붙여서 함수를 실행한다.) 함수를 사용하는 이유❓반복되는 동작을 단순화해서 재사용 가능하다.코드를 논리적 단위로 구분이 가능하다.코드 길이가 긴 것을 단순화해서 사용 가능하다. 📌 함수의 종류함수는 크게 4가지 종류로 나눌 수 있다.1. 인풋(입력)만 있는 경우2. 아웃풋(..
저장소를 이용해서 값을 주고받는 방식을 비동기 방식이라고 한다.저장소의 역할을 담당할 객체는 데이터의 성격에 따라 다양하게 선택할 수 있다 가장 쉽게 사용할 수 있는 객체로는 AppDelegate 클래스가 있다. AppDelegate는 UIApplication 객체로부터 생명 주기 관리를 위임받아 커스텀 코드를 처리하는 역할을 한다.하지만 이 객체는 앱 전체를 통틀어 하나만 존재하고 여러 뷰 컨트롤러 모두 접근할 수 있으며, 앱 프로세스의 생성/소멸과 운명을 함께 하므로 이 객체에 값을 저장하면 앱이 종료되지 않는 한 값을 계속 유지할 수 있다.SceneDelegate 클래스는 UIWindowSceneDelegate를 상속받아 아래와 같은 역할을 한다. UI 생명주기 관리:씬(scene)의 활성화, 비활..
이 포스트는 스탠포드 강의를 듣고 공부한 내용을 포스팅했다.오역과 의역이 있을 수 있다. Stanford CS193pAccess all videos (and course materials like homework assignment write-ups) at https://cs193p.stanford.edu. There is no reason to subscribe to this YouTube channel.www.youtube.com 프로젝트를 설정하고 첫 화면은 위와 같이 보이게 된다.오른쪽에는 프리뷰로 실시간으로 작업물을 보여주게 된다. 📌 SwiftUI에서의 구조체import SwiftUIstruct ContentView: View { var body: some View { V..
5.3 📌 이전 화면으로 값 전달하기새로운 화면으로 값을 전달하는 방법을 요약1. 값을 받을 새로운 화면을 스토리보드에 추가, 클래스 파일을 작성하여 연결 - VC2라고 부르도록 하겠음2. 코드를 통해 VC2의 인스턴스 참조를 얻어오거나, 인스턴스 참조가 없는 경우 인스턴스를 생성3. 전달하고자 하는 값을 인스턴스의 적절한 프로퍼티에 대입함, 프로퍼티를 미리 정의해야 함4. 화면 전환 레이아웃을 구성하고 전달받을 프로퍼티들을 정의한다. import UIKitclass ViewController: UIViewController { @IBOutlet var resultEmail: UILabel! @IBOutlet var resultIsUpdate: UILabel! @IBOutlet var resultIn..
5.1 📌 화면 전환 과정에서의 값 전달 방식뷰 컨트롤러 사이에 값을 주고받는 방식은 두 가지 개념이 있다.1. 뷰 컨트롤러에서 다음 뷰 컨트롤러로 값을 직접 전달하는 방식 ( 동기 방식 )2. 공동 저장소를 만들어 뷰 컨트롤러에서 여기에 값을 저장하고 화면을 이동하면 다음 뷰 컨트롤러에서 저장소를 열어 다시 값을 꺼내오는 공유 방식이 있다. ( 비동기 방식 ) 직접 전달 방식 ( 동기 방식 )뷰 컨트롤러에 직접 값을 전달하는 방식으로 주로 영속성으로 값을 저장할 필요가 없는 화면 전환에 사용된다.화면이 전달될 때 데이터가 함께 전달되거나 화면이 전환되기 전에 데이터가 미리 전달되므로 전달 과정에서 값이 누락될 염려가 없다는 장점이 있다.값이 전달되지 않으면 화면 전환 자체가 이루어지지 않게 구현할 수..
📌 튜플(Tuple)여러 값을 단일 복합 값으로 그룹화하는 방식이다.let http404Error = (404, "Not Found")// http404Error is of type (Int, String), and equals (404, "Not Found")여기서 404, "Not Found" 는 Int와 String을 함께 그룹화하여 제공되는 튜플이다.모든 타입의 튜플을 만들 수 있으며 원하는 만큼 다른 타입을 포함할 수 있다. ( 타입이 특별하게 정해져 있지 않다 ) 데이터의 갯수는 정의하기 나름이다. 튜플의 데이터의 접근var threeValues = ("홍길동", 20, "서울") threeValues.0 // 홍길동threeValues.1 // 20threeValues.2 // 서울 Na..