본문 바로가기

반응형

분류 전체보기

(59)
Swift lazy 알아보기 lazy 저장 프로퍼티는 처음 사용되지 전까지 초기값이 계산되지 않는 프로퍼티이다.(메모리에 올라가지 않는다.) 변수(var) 앞에 lazy를 선언함으로써 사용할 수 있다. lazy를 변수 앞에 사용해야 하는 이유?? 초기 값은 인스턴스 초기화가 완료 될 때까지 검색되지 않을 수 있기 때문에 변수로 선언해야한다. 상수(let)은 초기화가 완료되기 전에 항상 값을 가지고 있는 상태이어야 하기 떄문에 lazy로 선언할 수 없다. struct Hello { init() { print("Hello 생성") } } struct Hello2 { init() { print("Hello2 생성") } } struct Hi { var name: String //lazy //lazy 키워드를 사용하면 인스턴스 생성이 바로..
swift) git 공부하기5 github 연결 git remote add, git push 지금까지는 파일을 따로 만들어서 로컬영역에서만 연습을 해봤다면 이제부터는 깃허브 레포지토리를 만들고 연결해보도록 하겠다. 먼저 연습용 레포지토리를 하나 만든다. 다음과 같이 만들었다면 친절하게 예시를 보여주지만 잘 모르기때문에 연습을 해보겠다. 실제로 연습 중인 xcode 파일을 토대로 git init을 해준다. https://declan.tistory.com/40 git 공부하기3 git init, git status, git add, git commit -m git 공부하기 2에 이어서 내용을 공부하도록 하겠다. git init이란? git init은 새로운 Git 저장소를 생성할 때 사용하는 Git 명령어이다. git 공부하기2에 이어서 학습을 해보자면 git init 명령어를 입력 declan...
swift 고차함수 알아보기1(map, filter, reduce) 사실 고차함수에 대해서 알아보게 된 것은 swift 함수형 프로그래밍을 공부하다가 연관이 있기 때문에 넘어오게 되었다. 고차함수란? '다른 함수를 전달인자로 받거나 함수실행의 결과를 함수로 반환하는 함수'라고 한다. 스위프트에서 함수는 일급객체(일급시민)이기 때문에 함수의 전달인자로 전달할 수 있으며, 함수의 결과값으로 반환할 수 있다. 여기서 나오는 일급객체는 무엇인가?? https://declan.tistory.com/45 swift에서 일급 객체란? 알아보기 공부를 하다보면 모르는 용어가 있다. 이러한 용어들을 한번쯤은 정리하고 간다면 도움이 될 것 같다. 일급 객체란?? 다음과 같은 조건을 만족시킨다면 1급 객체라고 한다. 변수나 상수에 저장과 declan.tistory.com 오늘은 스위프트 표..
swift에서 일급 객체란? 알아보기 공부를 하다보면 모르는 용어가 있다. 이러한 용어들을 한번쯤은 정리하고 간다면 도움이 될 것 같다. 일급 객체란?? 다음과 같은 조건을 만족시킨다면 1급 객체라고 한다. 변수나 상수에 저장과 할당이 가능해야 한다. 함수의 매개변수로 사용이 가능하다. 함수(객체)에서 return이 가능하다. 다음과 같은 특징은 함수가 가지고 있고 가장 중요하게 사용되는 것 같다. 때문에 예시를 한번씩 들어보며 익혀보면 좋겠다는 생각이 들었다. 1. 변수나 상수에 저장과 할당이 가능하다. func getAge() -> Int { return 10 } var myAge = getAge() print(myAge) //10 //할당 var inputAge = getAge print(inputAge) // (Function) va..
swift uikit preview(미리보기) 띄우기 코드로 UI를 작성하다보면 스토리보드랑 다르게 빌드를 해야만 볼 수 있어 불편한 점이 많았다. 그러한 불편한 점을 해결하기 위해서 SwiftUI의 Preview기능을 가져오면 쉽게 확인이 가능하다. (그냥 코드를 복사해서 가져다 쓰면 된다) extension UIViewController { private struct Preview: UIViewControllerRepresentable { let viewController: UIViewController func makeUIViewController(context: Context) -> UIViewController { return viewController } func updateUIViewController(_ uiViewController: UIV..
swift label 행간 늘리기 프로젝트를 하다 보면 디자이너의 요청대로 행간(줄 사이의 공간)을 조절해야 할 때가 있다. 피그마에 다음과 같이 행간을 조절하라는 예시 코드가 나와있다. 이걸 완성해 보도록 하겠다. let paragraghStyle = NSMutableParagraphStyle() paragraghStyle.lineHeightMultiple = 1.23 let titleAttrString = NSMutableAttributedString(string: diaryTitleLabel.text ?? "") titleAttrString.addAttribute(NSAttributedString.Key.paragraphStyle, value: paragraghStyle, range: NSMakeRange(0, titleAttrSt..
swift enum CaseIterable, map 알아보기 enum에 CaseIterable이라는 프로토콜이 있다. 공식문서에는 A type that provides a collection of all of its values. 모든 값의 컬렉션을 제공하는 형식이라고 나타나있다. 한마디로 CaseIterable을 붙임으로써 열거형의 값들을 배열 같이 순회활 수 있도록 해주는 프로토콜이다. 간단한 예시부터 어떻게 사용할 수 있을지 고민해보도록 하겠다. enum colorCase : CaseIterable { case white case black } for i in colorCase.allCases { print(i) } enum diaryCase : CaseIterable { case aloneDiary case commentDiary case notDiaryD..
swift 에러) this class is not key value coding-compliant for the key 개발을 하다가 다음과 같은 에러가 나타났다. this class is not key value coding-compliant for the key 의미를 파악하면 이 클래스는 키에 대한 key value coding과 호환되지 않는다. 찾아보니 내가 리펙토링을 하면서 필요없는 ViewController인줄 알고 지웠다가 사용하고 있는 ViewController였다. ViewController를 다시 살려주니 해결되는 간단한 에러였다.

반응형