Programming/Swift
-
Swift - MethodProgramming/Swift 2021. 11. 6. 14:51
안녕하세요 BeePeach입니다 :) 지금까지 struct, class의 구성 멤버들 중에 Property에 대해서 공부해봤습니다. 오늘은 Method(메서드)에 대해서 공부해보려고 합니다. 그럼 시작하겠습니다! Method 메서드는 이름은 거창해 보이지만 우리가 이전에 공부했던 function(함수)와 다를 게 없습니다. 특정한 Type에 속해있는 함수를 메서드라고 합니다. 메서드는 struct, class, enum에서 선언할 수 있습니다. 그리고 프로퍼티처럼 Instance Method(인스턴스 메서드), Type Method(타입 메서드)로 나뉩니다. 인스턴스 메서드는 Instance(인스턴스)와 관련된 메서드입니다. 당연히 호출할 때도 인스턴스를 통해서 호출하겠죠?? 타입 메서드는 Type과 관..
-
Swift - Property Wrapper Projecting ValueProgramming/Swift 2021. 11. 5. 10:43
안녕하세요 BeePeach입니다 :) 오늘은 지난 포스팅에 이어서 Property Wrapper에 대해서 공부해보도록 하겠습니다. 바로 전 포스팅에서 Wrapper의 인스턴스에 접근하는 방법에 대해서 공부해보자고 했었죠?? 그럼 바로 시작하겠습니다! Wrapper의 인스턴스에 접근하기 이전에 사용하던 예시와 다른 예시를 보겠습니다. 이번에는 프로퍼티를 UserDefaults에 저장시키는 wrapper를 만들어보도록 하겠습니다. 제네릭을 이용하여 확장성이 높은 코드로 만들었습니다. Value 타입을 UserDefaults에 저장하는 wrapper입니다. 그럼 이 wrapper를 사용하여 구조체를 하나 만들어 보겠습니다. 여기서 생성자에 UserDefaults에 추가하는 코드를 또 넣은 이유는 인스턴스를 만..
-
Swift - Property WrapperProgramming/Swift 2021. 10. 28. 14:29
안녕하세요 Beepeach 입니다 :) 오늘은 Property Wrapper에 대해서 공부해보려고 합니다. 이제 막 Swift를 배우시는 분이라면 조금은 어려울 수도 있어서 이해가 가지 않는다면 나중에 보시는 것을 추천드립니다! Property wrapper는 프로퍼티를 정의하는 코드와 프로퍼티를 어떻게 저장할지 관리하는 코드를 분리시켜줍니다. 예를 들어서 어떤 프로퍼티들의 최댓값을 100으로 설정하고 싶습니다. 그럼 이 프로퍼티들을 선언해줄 때 최댓값이 100넘이 넘는다면 프로퍼티 값이 100으로 설정되는 코드를 모두 넣어줘야 합니다. 다른 예로는 어떤 프로퍼티들은 초기화와 동시에 UserDefaults에 저장되길 원합니다. 그렇다면 해당하는 프로퍼티들은 모두 UserDefaults에 저장하는 코드가 ..
-
Swift - Type PropertyProgramming/Swift 2021. 10. 27. 12:13
안녕하세요 Beepeach 입니다 :) 오늘은 Type Property에 대해서 공부해보겠습니다. 지금까지 봤던 프로퍼티는 Instance property(인스턴스 프로퍼티)입니다. Instance property란 인스턴스에 속하는 속성입니다. 그래서 각 인스턴스마다 고유한 값을 가지고 있었습니다. 예시를 보면 각각의 인스턴스마다 고유한 값을 가지는 것을 확인할 수 있습니다. 그리고 이 값들은 각각 메모리를 차지하고 있습니다. 그럼 Type property란 무엇일까요?? 인스턴스가 아니라 Type에 속하는 프로퍼티입니다. 인스턴스가 아무리 많아도 type property는 하나의 고유한 값을 가지고 공유합니다. 쉽게 말해서 Instance property의 값은 인스턴스가 100개이면 100개의 값을..
-
Swift - Property ObserverProgramming/Swift 2021. 10. 26. 11:18
안녕하세요 Beepeach입니다 :) 오늘은 Property Observer(프로퍼티 감시자)에 대해서 공부해보도록 하겠습니다. Property observer는 프로퍼티 값이 변할 때 원하는 작업을 할 수 있도록 하는 기능입니다. 단어처럼 프로퍼티를 감시하고 있다가 값이 변할 때 호출됩니다. Property observer는 세 가지 경우에만 사용할 수 있습니다. Stored Property 상속받은 Stored Property 상속받은 Computed Property (Inheritance(상속)에 대해서는 이후에 자세히 다루겠습니다.) 상속받지 않은 computed property는 setter에서 기능을 구현하면 되므로 observer가 필요 없습니다 그리고 let으로 선언된 프로퍼티에는 선언할 ..
-
Swift - Computed PropertyProgramming/Swift 2021. 10. 25. 14:59
안녕하세요 Beepeach입니다 :) 오늘 공부해볼 주제는 Computed Property(연산 프로퍼티)입니다. Computed property는 class, struct, enum에서 사용할 수 있습니다. 그리고 실제로 값을 저장하지 않습니다. 그 대신에 다른 값들을 이용하고 계산하여 프로퍼티 값을 반환하거나 간접적으로 설정할 수 있습니다. 왜 사용할까?? 다른 값을 이용하여 적절한 값을 반환해주고 간접적으로 프로퍼티의 값을 설정한다... 생각해보면 메서드로도 가능한 작업입니다. 그럼 왜 computed property를 사용하는 걸까요?? 메서드로 이 작업을 하려면 값을 반환해주는 메서드 1개, 값을 설정해주는 메서드 1개 이렇게 2개의 메서드가 필요합니다. 하지만 computed property를..
-
Swift - Stored PropertyProgramming/Swift 2021. 10. 24. 13:30
안녕하세요 Beepeach입니다 :) 오늘 공부해볼 내용은 Property(프로퍼티) 입니다. 프로퍼티란 struct, class, enum 등 타입에 관련된 값을 의미합니다. 프로퍼티라는 이름 때문에 특별해 보이지만 지금까지 우리가 사용했던 상수와 변수가 struct, class, enum에 구현되면 프로퍼티입니다. 특별한 게 아닙니다. 프로퍼티에도 종류가 있습니다. 인스턴스에 관련된다면 Instance property, 타입에 관련된다면 Type property 값을 저장한다면 Stored property, 값을 저장하지 않고 계산을 해서 반환해준다면 Computed property로 구분됩니다. (이 포스팅에서 type property라는 말이 없다면 instance property를 의미합니다.)..
-
Swift - Value type vs Reference typeProgramming/Swift 2021. 10. 23. 09:35
안녕하세요! Beepeach입니다 :) 오늘은 structure와 class의 가장 큰 차이점인 value type(값 타입)과 reference type(참조 타입)에 대해서 공부해보겠습니다! 단어가 생소해서 어려워 보일 수 있지만 사실 별거 아닙니다! 그럼 시작해보겠습니다. Value Type (값 타입) Structrue(구조체)와 Enumeration(열거형)은 값 타입입니다. ValueType은 값이 상수나 변수에 할당이 될 때 또는 함수로 전달이 될 때 값이 복사가 됩니다. 가장 핵심은 '값이 복사가 된다'입니다. 이게 무슨말이지?? 할 수 있지만 사실 지금까지 계속 사용해왔습니다. Int, Double, Bool, String, Array, Dictionary 등 모든 Swift basic ..