적당한 고통은 희열이다

- 댄 브라운 '다빈치 코드' 중에서

반응형

Swift iOS 앱 개발/Swift 86

[Swift] Optional 옵셔널이란?

Swift 언어의 안정성에서 중요한 요소 중 하나가 Optional 개념. type casting이나 nil check 등에 있어서 중요한 역할을 한다. + 종류 Optional 옵셔널이란? 값이 있을 수도 있고, 없을 수도 있다 (nil 값을 가질 수 있도록) (내부적으로는 열거형으로 처리가 되어 있음) 임시 타입이기 때문에 사용 시에 optional을 벗겨서 사용해야한다. (unwrapping) 언래핑 Unwrapping : 옵셔널로 초기 설정을 해준 값은 값이 존재하더라도 계속 Optional( ) 로 wrapping 되어져 있다. 이 optional wrapping을 벗겨주어 할당된 값을 그대로 사용할 수 있도록 해주는 것. 언래핑 하는 방법 Forced Unwrapping : ! 를 사용해서 강..

[Swift] Codable - CodingKey

CodingKey A type that canbe used as a key for encoding and decoding. 인코딩 및 디코등을 위한 키로 사용될 수 있는 타입 protocol CodingKey : CustomDebugStringConvertible, CustomStringConvertible, Sendable CodingKey 사용하는 경우 Swift에서는 변수나 상수를 선언할 때 카멜케이스를 사용한다. 그런데 예를 들어 JSON 에서 스네이크 케이스를 사용하는 경우, 다음과 같이 내려받은 JSON 키 "actual_price" 와 Items 구조체에서 선언해준 "actualPrice" 키가 일치하지 않을 수 있다. 이런 경우 CodingKey를 사용하여 키를 변환(?) 연결(?) 해주면..

oop vs pop

OOP Object-Oriented Programming 객체지향 프로그래밍 Encapsulation 캡슐화 함수 및 변수들을 class 안에 넣어서 -> 노출할 자료와 숨길 자료를 선택할 수 있음 Inheritance 상속 Abstraction 추상화 Polymorphism 다형성 프로토콜 지향 언어라는 말.. 나에게는 너무 어려운 말이다. OOP 대비 어떤 점이 좋은 것인지 이런 저런 설명도 찾아보고 했지만 사실 아직 잘 모르겠다. C#, python 이것저것 많이 찍먹해보긴 했지만, 사실 제대로 공부해보는 건 swift가 처음이라.. OOP에 대한 개념도 확실하게 잡히지 않은 상태에서 POP에 대한 설명을 아무리 읽어봐도 그냥 그렇구나 하는 정도지, 뭐가 더 좋다는 건지 크게 와닿지는 않는다. 이게..

[Swift Layout] FlexLayout

FlexLayout 이란? UIStackView를 개선한 Layout 프레임워크로, 사용하기 훨씬 더 간단하고 다양하게 쓰일 수 있으며 수동레이아웃 UIStackView보다 8~12배 빠르고 뛰어난 성능을 제공한다. 레이아웃 프레임워크를 이야기할 때 PinLayout과 함께 많이 비교 및 사용되는데, 정밀한 컨트롤이나 복잡한 애니매이션이 필요하지 않은 상황에서는 FlexLayout이 적합하다고 한다. FlexLayout 장점? - 간단하고 빠르다. - 구문이 간결하고 연결성이 좋다. (concise and chainable) - 믿을 수 없을 정도로 빠르며 수동 레이아웃(manual layout) 보다 훨씬 빠르다 - 소스코드 구조가 훨씬 더 시각적이고 이해하기 쉬워 수정도 용이하다. 설치 cocoaPo..

notification / callback / delegate 사용법

https://yagom.net/forums/topic/cell-%EC%95%88%EC%9D%98-button%EC%9D%84-%EC%B2%98%EB%A6%AC%ED%95%98%EB%8A%94-%EC%97%AC%EB%9F%AC%EA%B0%80%EC%A7%80-%EB%B0%A9%EB%B2%95%EB%93%A4/ 이벤트 발생을 감지하는 방법 Cell 내 버튼을 처리하는 여러가지 방법들. Delgate 패턴 Callback Completion Handler로서 Callback Closure를 사용하는 방법. 예시) 관심상품 추가 보내는 곳 // MyCell lazy var favoriteBtn: UIButton = { let button = UIButton() ... button.addTarget(self, ..

[Swift iOS] detect backspace in empty UITextField

UITextField에서 backspace를 감지하는 법은 두가지로 나뉜다. 1. 존재하는 텍스트를 지울 때 2. 빈 field에서 감지할 때 흔히 사용하게 되는 방법이 1번인데, 빈 textField에서 사용할 경우 백스페이스 감지가 되지 않아 2번의 방법을 알아보았다. 1. Detect Backspace Event : 존재하는 텍스트를 지울 때는 크게 어렵지 않다. textField shouldChangeCharactersIn 함수 내에서 바로 체크를 해줘도 되지만, 다음과 같이 String에 extension으로 Bool 변수를 만들어 놓으면 어디서든 쉽게 확인할 수 있다. extension String { var isBackspace: Bool { if let char = self.cString(..

[Swift iOS] NSMutableAttributedString 문자열 부분 설정

NSMutableAttributedString을 사용하면 하나의 문자열 내에서 편리하게 색이나 폰트, 크기 등의 속성을 변경할 수 있다. 1. addAttribute을 이용한 부분 설정 _name : 설정할 속성(색깔, 폰트 등), value : 설정 값(빨간색, 시스템폰트 등), range : 설정할 범위 func addAttribute(_ name: NSAttributedString.Key, value: Any, range: NSRange) 1) 문자열 부분 색깔 설정 안녕, 나는 빨클러야. label.text = "안녕, 나는 빨클러야." let attributedStr = NSMutableAttributedString(string: label.text!) attributedStr.addAttrib..

728x90
반응형