
안녕하세요. 도미닉입니다. 오늘은 편의 생성자에 대해서 알아보겠습니다. 보통 클래스나 구조체를 생성할 때 생성자를 사용하게 됩니다. 그렇다면 편의 생성자는 무엇일까요? 생성자에 대해서 같이 알아보시죠 지정 생성자란?생성자에는 지정 생성자와 편의 생성자가 있습니다. 지정 생성자는 저희가 주로 사용하던 init 으로 시작하는 메서드입니다.class Dog { let name: String init(name: String) { self.name = name }} 이런 형태로 생성자를 만드는 것이 지정 생성자였습니다. 편의 생성자란?편의 생성자는 다른 생성자를 호출하며 편하게 생성할 수 있도록 추가로 만드는 생성자입니다.class Dog { let name: String..

안녕하세요. 도미닉입니다. 오늘은 Stride에 대해서 알아보겠습니다. stride 의 의미는 보폭입니다. 보폭은 정해진 폭만큼 걸어간다는 뜻인데요. 정한 간격으로 증가하며 반복해서 사용할 수 있습니다. 아래와 같은 형태로 사용이 가능합니다. 1부터 시작해서 2씩 증가하고 15 미만까지 반복합니다. to 로 입력 시 마지막 숫자는 포함하지 않습니다.이런 식으로 변수에 할당할 수도 있습니다. 1부터 시작하여 15를 포함하지 않는 13까지 2씩 증가합니다. 가운데에 to 대신 through 를 사용할 수도 있는데요. 이 경우에는 마지막 숫자까지 포함합니다. 아래 주석을 보면 15까지 반복되는 것을 보실 수 있습니다. 추가적으로 배열의 인덱스를 사용할 때 주의점을 알아보겠습니다. endIndex 를 마지막 요..

안녕하세요. 도미닉입니다. 이번에는 디버깅 함수에 대해서 알아보겠습니다.개요디버깅(검증) 함수는 아래 5가지가 존재합니다.assert()assertionFailure()precondition()preconditionFailure()fatelError()XCTAssert 계열 함수와의 차이점1. XCTest는 테스트 실패를 보고하는 방식이 다릅니다.테스트 코드를 작성할 때 XCTAssert()를 저는 주로 사용했는데요. XCTAssert 계열 함수들은 테스트 실행을 중단하지 않고 실패를 기록합니다. 위에 디버깅 함수는 주로 런타임 오류 확인 또는 개발 중 논리 오류 감지에 사용됩니다. assert()나 fatalError()는 앱을 즉시 종료시킵니다. 2. 테스트는 실패 로그를 쌓는 것이 목적XCTAss..

안녕하세요. 도미닉입니다. 오늘은 어트리뷰트 키워드(Attribute keyword)에 대해서 알아보겠습니다. 어트리뷰트 키워드란?@와 이름를 붙여서 컴파일러에게 추가적인 정보를 제공하는 키워드입니다. 어트리뷰트 키워드는 크게 두 종류로 나뉩니다.1. 선언에 추가 정보 제공클래스나 함수의 선언 위에 줄에 @와 이름을 적어서 컴파일러에 정보를 제공합니다.@available 키워드를 통해 MyClass의 선언에 추가적인 정보를 제공합니다. 2. 타입에 추가 정보 제공두번째로는 타입에 추가 정보를 제공할 수 있습니다.@escaping 키워드를 통해 () -> () 타입에 추가적인 정보를 제공합니다. 이러한 키워드를 통해 컴파일러는 해당 선언과 타입에 대한 추가적인 정보를 제공받아서 컴파일합니다. 어트리뷰트 키..

안녕하세요. 도미닉입니다. 오랜만에 기술 글을 작성하네요. Argument Label (아규먼트 레이블)에 대해서 정리하고자 합니다. Argument Label보통 함수를 작성할 때 아래와 같이 작성하게 됩니다. 간단한 a 와 b 라는 Int 형 파라미터를 전달받아서 Int 형 타입을 리턴하는 sum 함수입니다. 파라미터란?참고로 a, b 는 파라미터라고 설명을 드렸습니다. 정해진 타입과 이름을 지정하여 함수를 실행할 때 값을 전달 받기 위해 함수명 옆에 괄호 안에 지정하는 것이 파라미터입니다. 파라미터는 매개변수, 인자라는 이름으로도 불리웁니다! 인수란?sum(a: 3, b: 4) 라고 호출되는 부분에서 실제로 사용되는 3과 4는 인수라고 불리웁니다. 파라미터와 헷갈릴 수 있는데 구분해서 알고 있으면..

안녕하세요. 도미닉입니다. SwiftUI 로 첫 프로젝트를 완료해서 페이워치 리뉴얼 앱을 런칭했는데요. 거기서 겪었던 오류를 설명하고 해결책을 공유하고자 합니다. 오류 발견 크래쉬틱스에 아래와 같이 많은 오류가 발생했습니다. 고객센터로 들어온 문의를 보면 일부 유저에게 홈 화면에서 앱이 강제종료되는 문제가 있었습니다. 처음에는 크래쉬틱스에 있는 에러와 홈 화면에서 앱이 강제종료되는 이슈를 별개의 문제로 알았습니다. 크래쉬틱스의 자세한 내용을 살펴봐도 홈 화면과 연관성을 못 찾았기 때문입니다. 아래는 크래쉬틱스에 내용입니다. Fatal Exception: NSInternalInconsistencyException Attempted to scroll the collection view to an out-of..

안녕하세요. 도미닉입니다. 오늘은 스위프트에서 구조체 모델을 UserDefaults 에 저장하고 불러오는 방법을 공유하고자 합니다. API 통신을 통해 JSON 을 많이 주고 받을 것입니다. 서버로부터 받은 JSON 을 모델 구조체로 변환하여 사용할 수 있습니다. 이 데이터를 현재 화면 말고 다른 화면들에서 혹은 다음 Flow 에서 사용하게 될 경우에 이 데이터를 UserDefaults 에 저장하고 필요한 뷰에서 불러와서 사용할 수 있습니다. 만약 이 구조체 모델을 바로 UserDefaults 에 저장하고자 하면 아래와 같은 오류가 발생합니다. UserDefaults.standard.set(withdrawalFlow, forKey: "WithdrawalFlow") 이런 경우 아래와 같이 데이터 타입으로 ..

안녕하세요. 도미닉입니다. 오늘은 SwiftUI 에서 삼각형을 그리는 방법을 공유하겠습니다. 아래 코드를 구글링해서 얻을 수 있었습니다. struct Triangle: Shape { func path(in rect: CGRect) -> Path { var path = Path() path.move(to: CGPoint(x: rect.midX, y: rect.minY)) path.addLine(to: CGPoint(x: rect.minX, y: rect.maxY)) path.addLine(to: CGPoint(x: rect.maxX, y: rect.maxY)) path.addLine(to: CGPoint(x: rect.midX, y: rect.minY)) return path } } 이 코드를 실행해보았습..
안녕하세요. 도미닉입니다. 오늘은 이니셜라이저에 대해서 알아보겠습니다. “이니셜라이저”란? 이니셜라이저는 한글로 초기화입니다. 초기화하면 어떤 단어가 생각나시나요? 리셋, 재부팅 같은 단어가 생각납니다. 그렇습니다. 초기상태로 셋팅해주는 것을 초기화라고 합니다. 스위프트에서 “이니셜라이저”란? 구조체와 클래스을 활용하고자 한다면 초기화해주어야 합니다. 이니셜라이저는 새로운 인스턴스를 만들어주는 과정이라고 할 수 있습니다. 이니셜라이저라는 작업을 통해 스위프트는 구조체와 클래스에 메모리를 할당하여 인스턴스로 만들어줍니다. 스위프트에서는 모든 프로퍼티(속성)에 값이 할당되어야 정상적으로 초기화가 되었다고 인식하며 하나의 프로퍼티라도 값이 할당되지 않았다면 오류가 발생합니다. 구조체의 이니셜라이저 구조체를 선..

안녕하세요. 도미닉입니다. 오늘은 Access Control 에 대해서 알아보겠습니다. Access Control 이란? Access Control 을 해석하면 무슨 뜻일까요? 접근 제어 입니다. 그렇다면 접근 제어하면 무슨 생각이 드시나요? 접근 금지라는 단어도 생각이 납니다. 관계자외 출입금지라는 표지판도 많이 붙어있죠. 어느 Access Level 까지 접근을 허용할지 제어하는 것을 접근 제어라고 합니다. Access Levels 이란? 해석하면 접근 단계입니다. 스위프트의 접근 단계는 5단계가 있습니다. open - 모듈 외부에서도 접근 가능 public - 모듈 외부에서도 접근 가능 internal - 하나의 모듈 내부에서만 접근 가능 fileprivate - 하나의 파일 내에서만 접근 가능 p..
- Total
- Today
- Yesterday
- IOS
- 단어
- 리눅스
- Swift
- MySQL
- 포인터
- Xcode
- Matlab
- 배열
- 프로그래밍
- 프로그램
- C
- exercise
- 뇌를 자극하는 C 프로그래밍
- Apple
- 스위프트
- 매트랩
- 연습문제
- terascan
- database
- 반복문
- 데이터베이스
- 애플
- 형용사
- 왕초보 영단어1
- 시원스쿨
- 뇌를 자극하는 C프로그래밍
- 영어
- 테라스캔
- 함수
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |