일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- unrecognized selector sent to class
- 회고
- 글또
- 코드스니펫
- 연관값
- 다짐글
- Git
- struct
- uikit
- ios 개발 강의
- AnyObject
- error해결
- actionSheet
- copy-on-write
- On branch is up to date with ' '
- Switch
- 파스칼표기법
- MyLife
- 글또9기
- 내_삶
- K디지털기초역량훈련
- weekly calendar
- 주간 달력
- class
- 생명주기
- avaliable
- 제어전송문
- SWIFT
- 바이트디그리
- IOS
- Today
- Total
목록전체 글 (103)
seong_hye, the developer
보호되어 있는 글입니다.
보호되어 있는 글입니다.
swift에서 사용하던 타입 중 가장 대표적인 Int, String, Double의 경우 스위프트에 내장되어 있는 기본 타입인 Basic Type이라고 한다면 개발자가 마음대로 만들어 쓸 수 있는 타입인 Custom Type이 있다. 그 중 하나에 대해 오늘 알아보려 한다. 열거형 (Enumeration) 타입 자체를 한정된 사례 안에서 정의할 수 있는 타입 타입으로 만든 경우, 미리 정의해둔 타입의 케이스에서 벗어날 수 없으므로 코드의 가독성과 안정성이 높아짐 ex) 월, 화, 수, 목, 금, 토, 일 / 가위, 바위, 보 enum Weekday { case monday case tuesday case wednesday case thursday case friday case saturday case..
프로토콜 규약 / 협약 최소한의 요구사항만 가지면 사용 가능 특정 역할을 하기 위한 메소드, 프로퍼티, 기타 요구사항등의 청사진 protocol MyProtocol { func doing() -> Int// 요구사항 } 프로토콜이 필요한 이유? 상속의 경우 하나의 클래스만 상속이 가능( 다중 상속 불가능) 상속의 경우 기본적인 상위클래스의 메모리 구조를 따라갈 수 밖에 없음 (필요없는 속성/메서드도 상속됨) class Bird { var isFemale = true func layEgg() { if isFemale { print("새가 알을 낳는다.") } } func fly() { print("새가 하늘로 날아간다.") } } class Eagle: Bird { // isFamale // layEgg(..
여러가지로 이루어진 연관된 데이터는 어떻게 저장할까? 튜플을 활용한다. 튜플 원하는 연관된 데이터의 조합으로 어떤 형태든 만들 수 있는 타입 (다만, 변수를 선언과 동시 해당 멤버(데이터의 종류 및 갯수)는 결정되므로 추가/ 삭제는 불가) 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) 해당 속성이 반드시 처음부터 초기화가 ..