일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 글또9기
- class
- 글또
- uikit
- 연관값
- 파스칼표기법
- 바이트디그리
- ios 개발 강의
- copy-on-write
- 내_삶
- 생명주기
- avaliable
- IOS
- 다짐글
- 회고
- 코드스니펫
- SWIFT
- unrecognized selector sent to class
- struct
- On branch is up to date with ' '
- error해결
- AnyObject
- 주간 달력
- 제어전송문
- Switch
- K디지털기초역량훈련
- actionSheet
- weekly calendar
- Git
- MyLife
- Today
- Total
목록IOS (78)
seong_hye, the developer
프로토콜 규약 / 협약 최소한의 요구사항만 가지면 사용 가능 특정 역할을 하기 위한 메소드, 프로퍼티, 기타 요구사항등의 청사진 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) 해당 속성이 반드시 처음부터 초기화가 ..
스위프트에서 수학적인 계산은 어떻게 이루어질까? 인간처럼 +,-, x, % 등을 통해 이루어진다. 그리고 우린 이걸 연산자라고 부른다. 연산자에는 어떻게 나눠볼 수 있을까? 1. 단항 연산자 단일 대상의 바로 앞(prefix) 또는 바로 뒤(postfix)에 위치하는 연산자 공백 없이 반드시 붙여서 사용한다. +a, -a. !a, a... 2. 이항연산자 스위프트에서 가장 많이 사용하는 형태 두개의 대상에서 가운데(infix) 위치하는 연산자 양쪽에 공백 1칸씩 추가해서 사용하는 것이 일반적 var count = 1 + 4 var name = "seong" + "hye" 3. 삼항 연산자 코드 내에서의 판단을 간단히 하기 위한 방법 count > 2 ? true : false [ 조건문 ? 참인 경우의 ..
대부분의 언어에서 말하길 클래스는 프로그래밍의 패러다임이라고 말한다. 패러다임 어떤 한 시대 사람들의 견해나 사고를 지배하고 있는 이론적 틀이나 개념의 집합체 클래스를 도입하면서 객체 지향 프로그래밍이 시작되었다. 그렇다면 객체가 무엇일까? 객체 (인스턴스) 소프트웨어 애플리케이션을 구축하는 블록 쉽게 사용하고 재사용할 수 있는 독립적인 기능 모듈 속성(프로퍼티) + 함수(메서드)로 이루어짐 객체 지향 프로그래밍 쉽게 생각하면 객체를 만들어내는 프로그래밍 의미있는 데이터를 묶음으로 만들려는 것 클래스와 구조체가 존재함 클래스(Class) 상속 가능 클래스의 객체는 메모리 구조의 힙 영역에 저장됨 값 복사시 참조타입(Reference Type)으로 메모리 주소를 가리킴 메모리 관리는 ARC 사용 class..
Swift에서 다른 프로그래밍 언어에는 없는 새로운 개념을 만들었다. 기존의 타입은 메모리 공간에 어떤 형태로 자료가 들어있음을 알려주는 것이였다 하지만 만약 메모리에 저장된 값이 없는데 접근한다면? 에러가 발생하며 앱이 꺼지게 된다. 이런 상황을 방지하기 위해 탄생한 것이 바로 옵셔널 타입이다. 옵셔널(Optional) 타입이란? 변수 또는 상수에 값이 할당되지 않은 상황을 처리하기 위해 안전하고 일관된 접근 방식을 제공하는 것 var number: Int? var name: String? - 변수를 선언할 때, 데이터 타입 선언 다음에 '?' 문자를 두어 옵셔널이 되도록 한다. - number와 name은 어떤 값도 할당되지 않은 nil 값을 가지게 된다. 주의할 점!! - 할당된 값이 없거나 nil..