[Swift]: Designated init, Convenience init, Required init
2022. 11. 10. 18:29
iOS
Swift 에서 initializer 들의 종류를 알아보자!! Designated init, Convenience init, Required init 이렇게 세가지에 대해 간단하게 알아보자. Designated init은 객체 모든 프로퍼티의의 값을 함수 구문 안에서 정해주는 initializer 이다. Convenience init은 함수 내부에서 객체의 모든 프로퍼티를 코드로 정해주기 귀찮아서 Designated init을 사용하고 싶을 때 쓰는 것이다! Required init은 자신을 상속받을 클래스들에게 반드시 선언해줬으면 하는 initializer 가 있을 때 사용하는 것이다! Designated init 객체 안의 모든 프로퍼티의 값들을 초기화해줘야 하는 initializer다! 옵셔널 타입..

[Swift] : KVO ( Key-Value Observing )
2022. 10. 22. 17:08
iOS
오늘은 KVO( Key-Value Observing )에 대해 알아보자! 먼저 KVC ( Key-Value Coding )에 대해 궁금하다면 아래 글을 읽어보자! [Swift] : KVC ( Key - Value Coding ) KVC ( Key - Value Coding ) 란 무엇일까? 객체의 프로퍼티에 접근할 때 사용하는 간접적인 코딩 방식이다. 객체의 프로퍼티에 접근하는 방식은 직접적인 방식과, 간접적인 방식으로 볼 수 있다. 직 seorin-yy.tistory.com Observer를 직역하면 관찰자라는 뜻이다. Swift 에서 Observer 는 Observe( 관찰 ) 하고자 하는 프로퍼티가 변경됐는지 관찰하는 것이다! 예시를 들어보자 observe 하려는 프로퍼티가 아래의 Human의 Na..
[Swift] : KVC ( Key - Value Coding )
2022. 10. 11. 14:51
iOS
KVC ( Key - Value Coding ) 란 무엇일까? 객체의 프로퍼티에 접근할 때 사용하는 간접적인 코딩 방식이다. 객체의 프로퍼티에 접근하는 방식은 직접적인 방식과, 간접적인 방식으로 볼 수 있다. 직접적인 방식은 아래 코드처럼 우리가 흔히 사용하는 코딩 방식이다. struct Human{ var name : String var profile : Profile } struct Profile{ var job : String } var profile = Profile(job: "") var seorin = Human(name: "", profile: profile) //seorin 객체의 프로퍼티에 직접 접근을 함!! seorin.name = "seorin" seorin.profile.job = ..

[Swift] : subscript로 String에 접근 할 수 없는 이유
2022. 10. 6. 18:16
iOS
subscript로 String에 접근 할 수 없는 이유를 알아보기 위해 subscript에 대해 알아보자! var intArr = [1, 2, 3] intArr[0] // 1 위의 예시처럼 intArr[int] 같이 배열에서 Key 값을 사용하여 Value에 접근해 줄 수 있게 해주는 것이 바로 subscript이다! 이제 swift 에서 String은 subscript[int]로 접근할 수 없는 이유에 대해 알아보자 var intArr = [1, 2, 3] var string = "abc" intArr[0] // 1 string[0] // error!!!! 위처럼 코드를 작성했다면 오류가 발생했을 것이다. 왜일까? 공식문서에서 String 을 봐보자! 문서에 따르면 String은 유니코드로 이루어진 ..

[UIKit] : Autolayout, SnapKit 사용해보기
2022. 9. 20. 12:52
iOS/UIKit
Swift 는 View들의 위치를 Layout으로 정해준다. 이때 Layout을 상수로 지정해주면 기기를 바꾸는 경우 원하는 상황이 연출되지 않을 것이다! iOS 기기마다 화면 View의 크기가 다르기 때문이다 -> 이를 해결하기 위해 AutoLayout 을 사용해보자! 1. 기존의 frame을 사용한 코드를 먼저 보자 import UIKit import Foundation class ViewController: UIViewController{ private let testView : UIView = { let testView = UIView() testView.backgroundColor = .blue return testView }() override func viewDidLoad() { super...
[UIKit] : CocoaPods 설치, 라이브러리 (SnapKit + Then)사용하기
2022. 9. 20. 12:45
iOS/UIKit
SnapKit, Then 등 외부라이브러리를 사용하기 위해 CocoaPods 을 설치해보자!! https://cocoapods.org CocoaPods.org CocoaPods is built with Ruby and is installable with the default Ruby available on macOS. We recommend you use the default ruby. Using the default Ruby install can require you to use sudo when installing gems. Further installation instructions are in the g cocoapods.org 위 링크로 접속하면 $ sudo gem install cocoapod..