본문 바로가기

전체 글75

[스위프트] nil과 null 차이 스위프트에는 nil이 있습니다. 하지만 다른 언어에, 심지어 이전의 Objective-C에도 null이 있었습니다.(물론 obj-c에는 nil도 있었습니다.) 그렇다면 nil은 무엇이며 nil과 null의 차이는 무엇일까... 일단 기존의 obj-c에서 nil과 null들에 대해서 간단하게 살펴봅시다. NULL C pointer의 null nil Objective-C의 object들을 나타내는 null값 Nil Objective-C의 class들을 나타내는 null값 NSNull null을 표현하기 위한 싱글톤 오브젝트 뭐 그렇다고 합니다. 하지만 Swift에서는 위의 것들을 전부 없애버리고 nil만 남았다. Swift에서 nil은 값이 존재할지 안 할지 모르는 상태의, 아예 빈값("")도 없을 수 있는.. 2023. 12. 15.
[스위프트] 옵셔널 바인딩 단축하기 원래 옵셔널 바인딩은 아래처럼 if let(var)문이나 guard let(var)문을 사용하여 할당하고 사용해야한다. var name: String? var age: Int? let isLoadingDone: Bool = false if isLoadingDone { name = "홍길동" age = 65 } if let name, let age { print("\(age)세 \(name)님 반갑습니다") } else { print("자료를 확인할 수 없습니다") } 하지만 아래처럼 사용할 수도 있다. // 다음과 같이 옵셔널 바인딩을 단축할 수 있다. let tempName: String = name ?? "알 수 없는 이름"// 기본값을 할당한다. let tempAge: Int = age ?? 0//.. 2023. 12. 14.
[스위프트] 옵셔널 바인딩을 간단하게 하는 방법 옵셔널에 대해 아직 잘 모르신다면 [스위프트] 옵셔널(Optional) 이 글을 읽고 오셔야 아래 내용을 이해하실 수 있습니다. 이 글은 최근에 추가된 옵셔널 바인딩을 간단하게 하는 문법에 대한 내용입니다. 기존에 옵셔널 바인딩은 var abc: Int? = 3 if let index = abc { print(index)// 3 print(type(of: index))// Int } 이런식으로 썼습니다만 만약 같은 이름으로 옵셔널을 풀어서 쓰고싶다면 다음과 같이 쓸 수 있습니다. var index: Int? = 2 print(type(of: index))// Optional if let index { print(index)// 2 print(type(of: index))// Int } print(inde.. 2023. 12. 14.
[CS] 강타입 언어와 약타입 언어 강타입 언어(Strong Type)는 항상 자료형의 에러를 검출할 수 있는 언어. 묵시적으로, 언어가 스스로 판단해서 변환을 해주거나 할 일이 없다. 다른형으로 변환이 금지되어있다. 매번 좀 번거로울수는 있지만 에러가 생길 변수를 하나 더 줄여준다. 약타입 언어(Weak Type)는 자료형의 에러를 묵시적으로 처리한다. 다른형으로 변환이 가능하다. 간단한 예시로 Int와 Double타입의 덧셈을 스스로 적절히 바꿔서 처리한다. 알아서 처리해주니까 편하긴 하지만 논리적 오류가 발생할 수 있다. 2023. 12. 14.
[디자인] 타이포그라피(Typography) 서양은 경필, 동양은 연필 문화를 가진다. 경필 : 딱딱한 글씨, 펜으로 글을 쓰는 문화. 연필 : 부드러운 글씨, 붓으로 글을 쓰는 문화. 타이포그라피의 4가지의 라인 위에서부터 Ascender : X-height를 초과한 높이. X-height : 소문자의 머리위를 가로지르는 선. Baseline : 글자가 나열되는 기준선. Descender : Baseline 밑으로 나온 부분. Serif(세리프) 삐침이 있는 폰트. 고전적인 느낌을 준다. 한국어로 치면 궁서 같은것 San Serif(산 세리프) 삐침이 없는 폰트. 깔끔해보인다. 한국어로 치면 고딕 같은것 Weight(두께) 폰트의 두께는 ultra thin thin light roman medium bold 순서로 굵어진다. Size(크기) 글자.. 2023. 12. 11.
[SwiftUI] 화면에 요소 보이기 숨기기 아래 소스코드는 투명도를 조절하는 코드입니다. .opacity(isHidden ? 0 : 1) isHidden으로 변수를 생성해서 삼항 연산자로 투명도를 조절합니다. 다른 방법으로는 if tabIndex == 0 { LengthView() } else if tabIndex == 1 { WeightView() } 이렇게 할 수도 있습니다. tabIndex로 플래그를 만들어서 if문에서 분기를 나눠서 이렇게 보여줄 수 있습니다. https://stackoverflow.com/questions/56490250/dynamically-hiding-view-in-swiftui Dynamically hiding view in SwiftUI I'm trying to conditionally hide a DatePick.. 2023. 12. 6.
[SwiftUI] Grid에서 두칸씩 잡아주기 .gridCellColumns(2) 를 추가하면 된다. 물론 숫자에 따라서 몇칸을 잡을지 변경된다. 2023. 12. 6.
[스위프트] Alert 구현하기 우리가 앱을 사용하다 비밀번호가 틀리거나 더이상 진행할수 없을때 화면 중앙에 뜨는 알림을 만들어볼겁니다. Alert에는 두가지 종류가 있습니다. Alert과 ActionSheet 어떻게 생긴지는 밑에 읽으시다보면 아시겠지만 애플에는 선택지가 3개이상이면 ActionSheet를 쓰라고 합니다. 구현순서는 1. Alert 객체 생성 2. 액션 생성 3. 객체에 액션추가 4. 객체를 화면에 뿌려주기 입니다. 1. Alert 객체 생성 let alert = UIAlertController(title: "Alert 띄우기", message: "Alert을 띄웠습니다.", preferredStyle: .alert) title에는 말그대로 제목 message에는 밑에 넣고싶은 메시지 preferredStyle은 두가.. 2023. 12. 2.
[SwiftUI] 뷰안에서 변수 수정하기(@State) SwiftUI 뷰 안에서 변수 만들고 수정하려면 변수명 앞에 @State를 붙여준다. 어디선가 본 내용으로는 변수를 뷰안에서 내가 직접 수정하기보단 데이터 받아서 수정해주는 그런거에 쓰느게 맞다고 했다. 2023. 11. 30.
728x90