📱 Mobile 27

[iOS] iOS 메모리 구조

b1ctory/Exception-Study Contribute to b1ctory/Exception-Study development by creating an account on GitHub. github.com iOS 메모리 구조 (Code, Data, Stack, Heap) 메모리 구조프로그램이 실행되면 운영체제는 메모리(RAM)에 프로그램을 위한 공간을 할당해 준다. 코드영역 작성한 소스코드가 기계어 형태로 저장된다. 컴파일 타임에 결정되고, 중간에 코드가 변경되지 않도록 Read-Only의 형태로 저장된다. 데이터 영역 전역 변수, static 변수가 저장된다. 프로그램 시작과 동시에 할당되고, 프로그램이 종료되어야 메모리가 해제된다. 실행 도중 변수 값이 변경될 수 있으니 Read-Write로 ..

[iOS] Navigation Bar Title 변경

Instagram Clone Application을 제작하던 중, Navigation Bar 의 제목을 변경했는데 Tabbar의 제목까지 함께 변경되는 문제를 겪었다. 간단하지만, 나중에 까먹지 않기위해 기록하려고 한다. Navigation Bar Title 변경하는 방법 경우의 수 1 ) 그냥 Navigation Controller만 embed 했을 때 // 1번 방법 title = "제목을 바꿔요" // 2번 방법 self.title = "제목을 바꿔요" // 3번 방법 self.navigationItem.title = "제목을 바꿔요" // 4번 방법 self.navigationController?.navigationBar.topItem?.title = "제목을 바꿔요" 경우의 수 2 ) Navig..

[Swift] 오류 처리

🚀작성자의 Swift 정리 원본인 Notion 구경하기 -> www.notion.so/Swift-59150070adb0467ea11d4f69090dbb24 오류타입 정의하기 오류 타입으로 사용되는 열거형을 정의할 때는 반드시 Error라는 프로토콜을 구현해야 한다. protocol Error { } 오류 던지기 우리가 작성한 오류 타입 객체는 함수나 메소드를 실행하는 과정에서 필요에 따라 외부로 던져 실행 흐름을 옮겨버릴 수 있다. 이때 함수나 메소드는 오류 객체를 외부로 던질 수 있다는 것을 컴파일러에 알려주기 위해 정의 구문을 작성할 때 throws 키워드를 추가한다. func canThrowErrors() throws -> String func cannotThrwoErrors() -> String ..

[Swift] 프로토콜

🚀작성자의 Swift 정리 원본인 Notion 구경하기 -> www.notion.so/Swift-59150070adb0467ea11d4f69090dbb24 프로토콜 : 클래스나 구조체가 어떤 기준을 만족하거나 특수한 목적을 달성하기 위해 구현해야 하는 메소드와 프로퍼티의 목록 🚀 명세 : 프로토콜에 선언된 프로퍼티나 메소드의 형식 🚀 프로토콜을 구현한다 : 이 명세에 맞추어 실질적인 내용을 작성하는 것 프로토콜의 정의 protocol { ... ... } 🚀스위프트에서 프로토콜을 구현할 수 있는 구현체들 구조체 클래스 열거형 익스텐션 프로토콜 구현을 위해 가장 먼저 할 일은 이 프로토콜을 구현하겠다고 선언하는 것이다. struct / class / enum / extention 객체명 : 구현할 프로토콜..

[Swift] 열거형과 익스텐션

🚀작성자의 Swift 정리 원본인 Notion 구경하기 -> www.notion.so/Swift-59150070adb0467ea11d4f69090dbb24 🚀 열거형은 문자열이나 정수값 등 직접 입력받아야 할 정보들을 입력 대신 선택할 수 있도록 만들어 줌으로써 값의 범위를 제한하고 무작위로 값이 입력되는 것을 방지하여 코드의 안정성을 높여주는 역할을 한다. 🚀 익스텐션은 기존에 작성된 객체를 직접 수정하지 않고도 기능을 추가하는 방법을 제공한다. 개발에 제약을 줄이고 생산성을 높여주는 방법이라고 할 수 있다. 열거형 하나의 주제로 연관된 데이터들이 멤버로 구성되어 있는 자료형 객체 열거형에서 데이터들을 열거형 객체를 정의하는 시점에 함께 정의된다. 따라서 데이터를 함부로 삭제하거나 변경할 수 없으며, ..

[Swift] 구조체와 클래스 - (2)

🚀작성자의 Swift 정리 원본인 Notion 구경하기 -> www.notion.so/Swift-59150070adb0467ea11d4f69090dbb24 상속 한 클래스가 다른 클래스에서 정의된 프로퍼티나 메소드를 물려받아 사용하는 것 프로퍼티와 메소드를 물려준 클래스는 부모 클래스 = 상위 클래스 = 슈퍼 클래스 = 기본 클래스 프로퍼티와 메소드를 물려받은 클래스는 자식 클래스 = 하위 클래스 = 서브 클래스 = 파생 클래스 서브 클래싱 먼저 기본 클래스 A 를 정의한다. class A { var name = "Class A" var description: String { return "This class name is \(self.name)" } func foo() { print("\(self.na..

[Swift] 구조체와 클래스 - (1)

🚀작성자의 Swift 정리 원본인 Notion 구경하기 -> www.notion.so/Swift-59150070adb0467ea11d4f69090dbb24 🚀 유연성 : 코드를 떼어서 다른 곳으로 옮기거나 새로운 코드를 추가하기가 쉽다는 뜻으로 의존성의 반대 개념 🚀 구조체 VS 클래스 [ 두 객체의 공통점 ] 프로퍼티 : 변수나 상수를 사용하여 값을 저장하는 프로퍼티를 정의할 수 있다. 메소드 : 함수를 사용하여 기능을 제공하는 메소드를 정의할 수 있다. 서브 스크립트 : 속성값에 접근할 수 있는 방법을 제공하는 서브스크립트를 정의할 수 있다. 초기화 블록 : 객체를 원하는 초기 상태로 설정해주는 초기화 블록을 정의할 수 있다. 확장 : 객체에 함수적 기능을 추가하는 확장 구문을 사용할 수 있다. 프로..

[Swift] 함수 - (3)

🚀작성자의 Swift 정리 원본인 Notion 구경하기 -> www.notion.so/Swift-59150070adb0467ea11d4f69090dbb24 클로저 🚀 스위프트에서 클로저는 일회용 함수를 작성할 수 있는 구문이다. 일회용 함수란 한 번만 사용한 구문들의 집합이면서, 그 형식은 함수로 작성되어야하는 제약조건이 있을 때 만들어 사용할 수 있는 함수를 이야기한다. 전통적인 명령형 언어에서는 모든 함수에 이름이 부여되어야 하지만 일회용 함수는 한 번만 사용하면 되므로 굳이 함수의 이름을 작성할 필요 없이 생략한다는 점에서 "익명 함수"라고 부르기도 한다. 🚀 스위프트에서 클로저라고 부르는 객체는 대부분 다음 세가지의 경우 중 하나에 해당한다. 전역 함수 : 이름이 있으며, 주변 환경에서 캡쳐할 어..

[Swift] 함수 - (2)

🚀작성자의 Swift 정리 원본인 Notion 구경하기 -> www.notion.so/Swift-59150070adb0467ea11d4f69090dbb24 꼼꼼한 재은씨의 Swift 문법편 A new tool for teams & individuals that blends everyday work apps into one. www.notion.so 일급 객체로서의 함수 일급 함수의 특성 객체가 다음의 조건을 만족하는 경우 이 객체를 일급 객체로 간주한다. 객체가 런타임에도 생성이 가능해야 한다. 인자값으로 객체를 전달할 수 있어야 한다. 반환값으로 객체를 사용할 수 있어야 한다. 변수나 데이터 구조 안에 저장할 수 있어야 한다. 할당에 사용된 이름과 관계없이 고유한 구별이 가능해야 한다. 🚀 함수가 이런..

[Swift] 함수 - (1)

🚀작성자의 Swift 정리 원본인 Notion 구경하기 -> www.notion.so/Swift-59150070adb0467ea11d4f69090dbb24 함수는 대부분의 프로그래밍 언어에서 지원하는 개념으로, 프로그래밍 실행 과정 중에서 독립적으로 처리될 수 있는 부분을 분리하여 구조화한 객체를 의미한다. 🚀 함수 사용의 이점 동일한 코드가 여러 곳에서 사용될 때 이를 함수화하면 재작성할 필요 없이 함수 호출만으로 처리할 수 있다. 전체 프로세스를 하나의 소스 코드에서 연속적으로 작성하는 것보다 기능 단위로 함수화하면 가독성이 좋아지고 코드와 로직을 이해하기 쉽다. 비즈니스 로직을 변경해야 할 때 함수 내부만 수정하면 되므로 유지보수가 용이하다. 사용자 정의 함수 func 함수이름(매개변수1: 타입, ..

반응형