일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- http
- segue
- NotificationCenter
- error
- Switch
- Refresh
- self
- escaping
- SWIFT
- class
- singleton
- Animation
- array
- IOS
- 글또
- uikit
- Observer
- apns
- Git
- ScrollView
- viewlifecycle
- struct
- SWIFTUI
- mvvm
- list
- PushNotification
- protocol
- 화면전환
- 고차함수
- calendar
- Today
- Total
목록SWIFT (65)
seong_hye, the developer
📘 Swift 문법 정리: 클로저(Closure)Swift 문법 중 클로저에 대해 정리한 글입니다.Swift를 공부하다 새로운 기술을 많이 보게 되는데가장 흥미롭게 공부하는데 시간이 꽤 걸린 클로저에 대해 알아보려고 합니다. 🔹 문법 설명클로저를 한마디로 정의한다면 익명함수라고 할 수 있습니다.함수에서 이름을 땐 기능 블록을 의미합니다.하지만, 사실은 func 키워드를 이용해 이름이 붙어있는 함수들도 모두 클로저라고 합니다. 📌 이름이 있는 클로저(Named Closure) + 이름이 없는 클로저(Unnamed Closure) = 클로저 (Closure)여기서 우리는 Named Closure 를 함수라고 부르고 있으며Unnamed Closure를 클로저라고 말합니다. 클로저가 함수보다 큰 범위인 ..

프로젝트를 진행하다보면 만날 수 밖에 없고 반드시 해결해야 할 에러(Error)를 만나게 되는데요오늘은 에러를 해결하기 위한 방법인 에러와 에러 처리 방식에 대해 알아보도록 하겠습니다. 오류(Error)란?스위프트에서 Error란 오류를 보여주는 하나의 프로토콜로 오류가 발생하게 되면 throw로 해당 오류를 알려주게 됩니다. 오류 표현 방법으로는 Error 프로토콜을 사용하여 열거형을 통해 오류를 표현하게 됩니다.enum 오류이름: Error { case 종류1 case 종류2 case 종류3} 예시로 문자열을 숫자로 바꾸는 경우 발생할 수 있는 오류를 작성해본다면 아래와 같이 작성될 수 있습니다.enum IntParsingError: Error { case overflow case invalidIn..
swift에서 사용하던 타입 중 가장 대표적인 Int, String, Double의 경우 스위프트에 내장되어 있는 기본 타입인 Basic Type이라고 한다면 개발자가 마음대로 만들어 쓸 수 있는 타입인 Custom Type이 있다.그 중 하나에 대해 오늘 알아보려 한다.열거형 (Enumeration)타입 자체를 한정된 사례 안에서 정의할 수 있는 타입타입으로 만든 경우, 미리 정의해둔 타입의 케이스에서 벗어날 수 없으므로코드의 가독성과 안정성이 높아짐ex) 월, 화, 수, 목, 금, 토, 일 / 가위, 바위, 보 enum Weekday { case monday case tuesday case wednesday case thursday case friday case saturd..
프로토콜규약 / 협약최소한의 요구사항만 가지면 사용 가능특정 역할을 하기 위한 메소드, 프로퍼티, 기타 요구사항등의 청사진protocol MyProtocol { func doing() -> Int // 요구사항}프로토콜이 필요한 이유?상속의 경우 하나의 클래스만 상속이 가능( 다중 상속 불가능)상속의 경우 기본적인 상위클래스의 메모리 구조를 따라갈 수 밖에 없음(필요없는 속성/메서드도 상속됨)class Bird { var isFemale = true func layEgg() { if isFemale { print("새가 알을 낳는다.") } } func fly() { print("새가 하늘로 날아간다.") ..
여러가지로 이루어진 연관된 데이터는 어떻게 저장할까?튜플을 활용한다.튜플원하는 연관된 데이터의 조합으로 어떤 형태든 만들 수 있는 타입(다만, 변수를 선언과 동시 해당 멤버(데이터의 종류 및 갯수)는 결정되므로 추가/ 삭제는 불가) ex) 좌표 (Int, Int) / 3차원 공간( Int, Int, Int) - 접근할 때는 변수명.0, 변수명.1 ==> 점을 활용하여 접근 이름이 매겨진 튜플데이터의 각 요소에 이름을 붙일 수 있음 ex) var iOS = ("Swift", 2024)var iOS = (language: "Swift", year: 2024) - 접근할 때 iOS.language, iOS.year로 접근 가능 ==> 코드의 가독성 높아짐 튜플 분해튜플의 각 요소를 각각 상수, 변수화 가능(바..
타입 캐스팅이란?인스턴스의 타입을 확인하거나 어떠한 클래스의 인스턴스를해당 클래스 계층 구조의 슈퍼클래스나 서브 클래스로 취급하는 방법 - 메모리 값을 수정하는 것은 아님- 단순히 해당 타입의 인스턴스인 것처럼 취급하려는 목적class Person { var id = 0 var name = "이름" var email = "abc@gmail.com"}class Student: Person { var studentId = 1}class Undergraduate: Student { var major = "전공"}let person = Person()let student = Student()let undergraduate = Undergradutae()is 연산자타입에 대한 검사를 수행하는 연산자 (..

흔히 아는 상속의 뜻은 부모가 자식에게 물려주는 것을 의미하듯이프로그래밍에서도 상속은 부모가 자식에게 물려주는 것을 의미한다.상속클래스만 가지는 성격으로본직적으로 성격이 비슷한 타입을 새로 만들어데이터(저장속성)를 추가하거나 기능(메서드)을 변형시켜서 사용하려는 것class 클래스 이름: 부모클래스 이름 { 프로퍼티와 메서드들} 상속의 특징- 상속 하는 클래스는 상위, 메인, 부모 클래스라고 함- 상속받은 클래스를 하위, 서브, 자식 클래스라고 함- 상속된 클래스는 부모 클래스의 모든 기능을 상속받으며 자신만의 기능을 추가하게 함- 하나의 클래스는 하위 클래스를 얼마든지 가질 수 있음- 하위 클래스는 다중 상속 불가능함 class Person { var id = 0 var name = "이름" ..
구조체와 클래스는 둘 다 속성과 메서드로 이루어져 있는데둘의 차이는 상속과 연관이 있는 메서드에서 차이가 나게 된다.이를 제대로 알아보기 위해속성과 함수에 대해 자세히 알아보도록 하자속성저장 속성(Stored Properties)값이 저장되는 일반적인 속성(변수)클래스/구조체의 틀에서 찍어낸 각 인스턴스가 가지는 고유의 데이터 저장 공간변수(var)나 상수(let)로 선언 가능객체의 초기화 시, 각 저장 속성은 반드시 값을 가져야 함(기본값 설정 or 생성자에서 설정 or 옵셔널 타입으로 선언)struct Person { var name = "seonghye" var age: Int?} 지연 저장 속성(Lazy Stored Properties)해당 속성이 반드시 처음부터 초기화가 필요하지 않은 경우..