본문 바로가기

Swift

(26)
[Swift] 클래스 2단계 초기화와 안전점검 완벽 이해!! 2단계 초기화와 안전 점검 in class 2단계 초기화 안전 점검 단계 클래스 초기화 1단계 클래스 초기화 2단계 클래스와 초기화에 대한 개념이 가물~가물 하다면?! -> 클래스와 초기화 글 다시보기 클래스에서 자동, 지정 초기화, 편리 초기화 개념이 가물~가물~ 하다면?! -> 자동, 지정, 편리 초기화 글 다시보기 2단계 초기화 클래스 초기화는 2 단계를 거쳐서 진행된다. 해당 클래스의 저장 프로퍼티는 초기값으로 모두 초기화 ( 부모 또한 super Designated or 자식 클래스에서 전부 초기화) 자식방향으로 내려오며 초기화된 프로퍼티 중 일부를 필요에 맞게 커스터마이징 하는 단계 2 단계에서 에러없이 초기화가 완료되었음을 보장하기 위해 4단계 안전 점검을 진행한다. 안전 점검 단계 안전 점..
[Swift] 자동, 지정, 편의 초기화(in class). 연쇄 호출 관계 뿌수기!! 초기자 연쇄 호출 관계 부수기! About_Designated Initializer Automatic initializer inheritance About Convenience Initializer 호출 규칙(지정 초기자와 편의 초기자) 클래스와 초기화에 대한 개념이 가물~가물 하다면?! -> 클래스와 초기화 글 다시보기 About Designated Initializer(지정 초기화) 지정 초기화는 기본 초기화입니다. 옵셔널 타입이 아닌 저장 프로퍼티를 전부 초기화 시켜 주어야 한다. else error ( 또한 super클래스의 초기화 메서드도 호출 해주어서 초기화 체인을 이룰 수 있도록 하는 초기화입니다) init(parameters) { statements } 따라서 클래스는 반드시 한개 이상의 ..
[Swift] class 초기화. 왜 super.init()을 쓰는가? (오버로딩, 오버라이딩) 왜 super.init()을 쓰는가? 클래스와 초기화(Initialization) 상속받는 클래스의 경우 오버라이딩(Override)과 오버로딩(Overloading) 클래스와 초기화(Initialization) Swift는 클래스에서 저장 프로퍼티를 자동적으로 초기화 해주지 않는다. 멤버와이즈 초기화 메서드를 지원해주는 구조체와 달리 개발자가 직접 명시적인 초기화를 통해 클래스 내 존재하는 모든 저장 프로퍼티들의 값을 넣어주어야 한다. /** * x = 변수 선언과 동시에 값 할당 * y = init()을 통해 초기화 */ class point { var x : Int = 0 var y : Int init() { y = 0 } } 이 외에는 옵셔널 타입으로 만들면 초기화를 하지 않아도 자동으로 nil타..
[Swift] ARC(Auto Referencing Counter) 안녕하세요👋 꼼꼼한 재은씨 기본편 chapter2를 공부하다 ARC가 궁금해져서 공부를 했습니다!! 참조 카운터는 이전에 공부하다 한번쯤 들어봤는데,, 이번기회에 자세하게 공부해 봐야지~ Todo : ARC(Auto Referencing Counter Auto Referencing Counter 공부 전 필수로 알아야 할 지식! ARC의 특징 ARC가 적절하게 메모리에 할당, 해제 되려면? String Reference Cycles Between Class Instance Weak 키워드 Auto Referencing Counter 공부 전 필수로 알아야 할 지식! Value Type 과 Reference Type에 대해서 알아야 합니다. Value Type : Structure, Enum, Tuple ..
swift 알고리즘 문제풀때 도움되는 skill 정리 문자열에서 특정 char를 다른 char형으로 변환하고 싶은 경우 string.replacingOccurrences(of:with:)를 사용합니다. 첫번째 인자값에 반환할 char 두번째 인자값에 바뀔 char를 선언해주면, replace된 string이 반환됩니다. 이때 기존 string은 그대로입니다!! var colors = "RRRGBB" var changedColor = colors.replacingOccurrences(of: "R",with: "G"); 결과적으로 colors 는 RRRGBB changedColor 는 GGGGBB https://www.acmicpc.net/problem/10026 사용하면 좋은 문제 입니다. 적록색약이 있는 사람은 이미지에서 R과 G색을 같은 색으로 바라보기 ..
[Swift] Fatal error: 'try!' expression unexpectedly raised an error: Error Domain / ATS 설정 꼼꼼한 재은씨 tableView와 REST API를 통한 영화 목록 구현을 복습할 겸 책을 보지 않고 tabieView를 구현하고 있었는데.. 오류가 발생했다. 어늬?! cmd + 클릭 으로 해당 사이트 이동은 잘만 되는데 뭐가 문제인지... 고민을 하다가 Info.plist에서 xml파일에 추가 설정을 해 줘야 한다는 것을 잊고 있었다. 신기하게 정말 에러가 나는구나,, 바로 ATS 설정을 해주었다. 일반 프로토콜 http:// 주소 는 SSL 보안 프로토콜이 적용되지 않은 '일반' 네트워크라고 한다. 따라서 SSL 보안 프로토콜이 적용되어있지 않은 http:// 에 접속하려면 ATS 설정을 추가적으로 해야한다.. (으흑..,,, 모르는게 너무많네 이참에 네트워크 공부까지 바로 해버리기로 다짐한 1인)
[Swift] 딕셔너리 [ Int:[Int]] , 2차원 배열에 입력값으로 배열을 입력받는 나만의 팁!! 2차원 배열에 값을 입력 받는 방법 https://www.acmicpc.net/problem/2468 2468번: 안전 영역 재난방재청에서는 많은 비가 내리는 장마철에 대비해서 다음과 같은 일을 계획하고 있다. 먼저 어떤 지역의 높이 정보를 파악한다. 그 다음에 그 지역에 많은 비가 내렸을 때 물에 잠기지 않는 www.acmicpc.net 이 문제처럼 2차원 배열을 입력 받아야 할 경우 5 4 1 0 1 0 0 1 0 0 0 0 1 0 1 0 1 1 0 0 1 0 //우선 차원 배열을 생성한다!! var island = Array(repeating: [Int](), count: height) //그후 세로줄 탐색하면서 배열을 추가한다. for i in 0..
[Swift] MVC와 ViewController의 관계 🔭 MVC패턴 기본적인 화면 구성은 여러 UIView를 window에 담아서 Screen 에 보내고, Screen은 기기에 출력한다. 여기에는 Swift 앱 제작을 사용할 때 가장 많이 다루었던 ViewController가 존재하지 않는다. UIView와 리소스 관리를 위해 ViewController 객체가 만들어 진 것이다. 한개의 ViewController 안에 여러개의 View가 존재하기 때문에 이에 대한 리소스 또한 ViewController에서 다루어 져야한다. 이것이 ViewController가 해야할 일이다. 이 역할은 모두 UIViewController에 정의 되어있다. 따라서 UIView 객체가 바로 windows에 얹혀지는 게 아니라 ViewController에 얹혀지고, ViewCon..