본문 바로가기

Swift

(32)
[Swift] ARC ARC ARC는 iOS 면접 단골 질문입니다. 참조 타입과 HEAP swif의 힙에 메모리는 인스턴스, 클로저 등등 참조 타입은 자동으로 힙에 할당한다. 지금 까지 우리는 자동으로 할당하여 쓰고 있었음 class Man { var name: String? var age: Int? init(name: String?, age: Int?) { self.name = name self.age = age } } let a = Man(name: "ssss", age: 19) 스택 → 힙 힙영역 Man instance name = ssss age = 19 스택 a 지역 변수 a에 스택이 할당되고 실제 Man은 힙에 저장됨 스택에 있는 a는 힙 영역에 인스턴스를 참조하고 a 안에 힙에 할당된 인스턴스의 주소값이 있습니다..
[Swift] 프로퍼티 프로퍼티 프로퍼티는 클래스. 구조체, 열거형과 관련한 값입니다. 프로퍼티의 종류에는 저장 프로퍼티와 계산된 프로퍼티가 있습니다. 저장 프로퍼티는 값을 저장해 주는 프로퍼티이고 계산 프로퍼티는 계산된 프로퍼티의 값을 저장하지 않고 특정하게 계산한 값을 반환해 주는 프로퍼티입니다. 계산 프로퍼티는 클래스, 주조체, 열거형 모두에서 사용가능하지만, 저장프로퍼티는 클래스와 구조체에서만 사용할 수 있습니다. 저장 프로퍼티? 값을 저장하고 있는 프로퍼티 let 키워드를 이용해서 상수 혹은 var 키워드를 이용해서 변수로 선언할 수 있습니다. 상수 구조체 인스턴스의 저장 프로퍼티 구조체를 상수로 선언하면 구조체 인스턴스의 프로퍼티를 변경할 수 없습니다. 구조체를 let으로 선언하면 프로퍼티를 변경할 수 없습니다. 구..
[Swift] 함수 함수 Swift의 함수는 기본적으로 1. 함수이름, 2. 매개변수, 반환타입을 사용하여 함수를 정의합니다 //매개변수란 = 함수를 호출할 때 인수로 전달된 값을 함수 내부에서 사용할 수 있게 해주는 변수입니다. //반환타입이란 = 원하는 타입을 받는 것 func 함수이름(매개변수...) -> 반환 타입 { 실행 구문 return 반환 값 }swift에서 원하는 타입을 받기 위해서는 →를 사용합니다 func printName() { print("my name") } printName()함수에는 매개변수와 반환타입이 없어도 사용가능 합니다 func printName(age: Int, Name: String) { print("my age is \\(age) and my name is \\(Name)") } p..
[Swift] 흐름 제어 흐름 제어 if 스위프트도 조건문이 있습니다 let first: Int = 3 let second: Int = 1 if(first > second){ print("\\(first) > \\(second)") }else if(first IntNu..
[Swift] 데이터 타입 Boolean 불이라고도 하고 불리언이라고도 부른다 true, false의 단일 값을 가진다. if나 swiftch에서 주로 사용한다. Sendable을 상속받고 있습니다. int.type과 같이 암시적으로 프로토콜을 준수합니다. //근본(지정) let a: Bool = true let b: Bool = false //근본(선언) let a: Bool? //이럴 경우 any 타입으로 인식후 값을 자동 저장 let a = 10 > 12 // a = false 저장 let b = 10 && 10 // b == true 저장 if문 사용 예제 let a = true if a == true { print("true") } else { print("false") } Int, UInt Int는 +,- 정수를 담을 ..
[구조 패턴] Facade 퍼사드 패턴이란? 퍼사드는 클래스 라이브러리 같은 어떤 소프트웨어의 다른 커다란 코드 부분에 대한 간략화된 인터페이스를 제공하는 객체이다. 퍼사드 패턴은 다양한 인스턴스들을 하나씩 직접 소유하여 사용하지 않고, 인스턴스들이 협력하는 과정을 간략화된 인터페이스를 통해 제공하는 패턴입니다. 복잡한 퍼사드 뒤로 숨기고 퍼사드를 통해 간접 호출을 하는 것입니다. 즉 라이브러리, 프레임워크에 대한 또는 다른 클래스들의 복잡한 집합에 대한 단순화된 인터페이스를 제공하는 구조적 디자인 패턴입니다. 퍼사드 패턴의 어원 퍼사드 패턴은 "건물의 정면을 의미한다" 퍼사드 패턴을 언제 사용하면 좋을까? 객체 지향 프로그래밍 분야에 자주 사용한다. 주로 퍼사드 패턴은 언제 사용하면 좋을까? 퍼사드 패턴은 여러 인스턴스를 소유하..
[Swift] 프로퍼티 프로퍼티는 클래스. 구조체, 열거형과 관련한 값입니다. 프로퍼티의 종류에는 저장 프로퍼티와 계산된 프로퍼티가 있습니다. 저장 프로퍼티는 값을 저장해 주는 프로퍼티이고 계산 프로퍼티는 계산된 프로퍼티의 값을 저장하지 않고 특정하게 계산한 값을 반환해 주는 프로퍼티입니다. 계산 프로퍼티는 클래스, 주조체, 열거형 모두에서 사용가능하지만, 저장프로퍼티는 클래스와 구조체에서만 사용할 수 있습니다. 저장 프로퍼티? 값을 저장하고 있는 프로퍼티 let 키워드를 이용해서 상수 혹은 var 키워드를 이용해서 변수로 선언할 수 있습니다. 상수 구조체 인스턴스의 저장 프로퍼티 구조체를 상수로 선언하면 구조체 인스턴스의 프로퍼티를 변경할 수 없습니다. 구조체를 let으로 선언하면 프로퍼티를 변경할 수 없습니다. 구조체가 아..
[Swift] 클래스와 구조체 클래스와 구조체는 프로그램의 코드를 조직화하기 위해서 일반적으로 사용합니다. OOP를 위한 요소이기도 합니다. 클래스와 구조체의 공통점 값을 저장하기 위한 프로퍼티 정의 기능을 제공하기 위한 메소드 정의 초기 상태를 설정할 수 있는 initializer 정의 기본 구현에서 기능 확장 특정한 종류의 프로토콜 순응 구조체로는 가능하지 않지만 클래스만 가능한 기능 상속 부모클래스가 자식 클래스에게 가지고 있는 값을 주는 것 타입 캐스팅 런타임에 클래스 인스턴스의 타입을 확인 소멸자 할당된 자원을 해제 시킴 참조 카운트 클래스 인스턴스에 하나 이상의 참조가 가능 구조체는 다른 코드로 전달될 때 항상 복사하고 참조 카운트를 사용하지 않습니다. 선언하는 방법 struct AStructure { var name: S..