본문 바로가기

Swift

(27)
[Swift] Array 의미와 선언(Set과의 차이점은?), 자주 사용하는 함수(in 코테) 목차 : Swift에서 자주 사용되는 배열 함수 배열(Array)란? 배열의 선언 삽입과 삭제, 처음과 끝 원소 확인 자주 사용하는 함수(in 코테) 배열(Array)란? Swft에서는 3개의 collection타입을 제공합니다. 그 중에서 오늘은 배열(Array)에 대해서 공부할 것입니다!! 배열에 타입(Int,String...)을 지정할 경우 이외의 타입을 삽입 할 수는 없습니다!! 그대신 컬랙션, 배열에서 검색할 값의 유형은 정해져 있다는 것!! 배열은 orderded list 순서가 있는 목록이에요. index에 따라서 value를 저장할 수 있습니다. Set과 Array의 차이점은? 우선 값의 중복 여부인데요. Array는 value마다 고유의 index가 있기 때문에 값이 중복으로 저장 되어도..
[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..