본문 바로가기

전체 글

(132)
[iOS] TableView만드는 첫번째 방법(feat. 임의의 Cell 지정) 1. 스토리보드에 테이블뷰를 생성하고 크기를 정해준다. 2. TableView의 @IBOutlet을 지정해준다. 3. UITableDelegate와 DataSource 프로토콜을 채택해준다. 4. 프로토콜에 준수하는 메서드 두개를 생성받아 내부를 구현해준다. 5. tableView메서드들의 주체를 self로 설정해준다. 전체 코드 import UIKit class ViewController: UIViewController { @IBOutlet weak var TableViewMain: UITableView! let explain = """ 1. 어떤 데이터인지 ? -> 전화번호부 2. 테이블의 행 데이터 개수는 몇개인가? -> 100 3. (옵션) 데이터 행을 눌렀을때 이벤트 설정 """ override..
[iOS] TableView란? 공식문서를 읽어보자 # TableView란 무엇인갑? - 사용자가 수정가능한 행의 단일 열에 데이터를 표시한다. => 즉 , 행을 나타내는 Label의 목록 View라고 생각한다. #TableView의 특징 - 세로 스크롤 콘텐츠의 단일 열을 표시한다. ex)전화번호부목록처럼 - 행과 섹션으로 나뉘어 정보가 표시된다. - 섹션(단면도, 부분)을 이용하면 관련 행을 함께 그룹화할 수 있따. ex)설정앱에 카테고리별로 묶여있는것처럼? # TableView사용시 사용하는 개체들 - Cell Cell은 콘텐츠에 대한 시각적 표현을 제공한다. UIKit에서 제공하는 기본 셀을 사용하거나 앱의 요구사항에 맞게 사용자 지정 셀을 정의할 수 있다. - TableViewController 일반적으로 UITableViewController를..
[Swift] ARC에 대해 간단히 알아보잡(feat. 클로저캡쳐) ARC(Automatic Reference Counting)에대해 알아보기! [ARC동작] 클래스의 새 인스턴스를 만들때마다 ARC는 인스턴스 정보를 담는데 필요한 적정한 크기의 메모리를 할당한다. 메모리는 인스턴스에 대한 정보와 관련된 저장프로퍼티 값도 갖는다. 인스턴스가 더이상 사용되지않을때 ARC는 그 인스턴스가 차지하고 있는 메모리를 해지해서 다른 용도로 사용할 수 있도록 공간을 확보한다. 만일 메모리에서 해제된 인스턴스 프로퍼티에 접근한다면 Crash가 발생하게된다. ARC에서 사용중인 인스턴스에 대한 참조를 추적함으로써 아직 사용중인 인스턴스를 해지하지않도록 한다. RC란? class를 참조하는 인스턴스의 수! RC가 어떻게 적용되는지 알아보자 class Person { let name: St..
[에러]unrecognized selector sent to instance Exception NSException * "-[Calculator.ViewController appendOperatorToInputFormulaLabel:]: unrecognized selector sent to instance 0x15c807770" 0x0000600000039140 이러한 에러가 나서 뭐지하고 구글링하다면서 알아보는데 알고보니...내가 IBAction 메서드랑 버튼이랑 연결되있는데 연결하 이후에 메서드명 변경해서 오류난거였음 그래서 인식을 할 수 없다고 얘기하는 오류같음 등잔 밑이 어둡다 ....이오류에 15분을투자했네..
함수형 프로그래밍에대한 간단한 이해 참조 - https://www.youtube.com/watch?v=jVG5jvOzu9Y - https://www.youtube.com/watch?v=4ezXhCuT2mw 함수형 프로그래밍이란 ? 파이프라인과 같이 인풋과 아웃풋이 존재한다. 파이프라인은 외부에서 내부로 접근할 수 없게 설계가 되어있습니다. 순수함수 함수에서 외부의 값을 참조하거나 외부의 값을 변경하는것을 순수함수라고 볼 수 없습니다. 동일한 인자를 넣었을때 동일한 인자를 반환하는 것이죠. 비상태 불변성을 유지해야합니다. 전달된 데이터를 변경하는것이 아니라 새로운 버전의 새로운 객체를 만들어서 결과를 전달해야합니다. 사이드 이펙을 만들지 않음으로써 동시다발적인 멀티스레드 환경에서도 안정적으로 사용할 수 있습니다. Expression if문이..
[Swift] Sequence Type이란? Sequence Type (프로토콜) 위의 계층 구조를 보면 모든 것들이 Sequence프로토콜을 기반으로 작성되었다는 사실을 알 수 있습니다. Array타입을 사용할때 Sequence가 대부분의 기능을 제공합니다. map, filter뿐만아니라 Sequence안에 특정 조건을 만족하는 첫번째요소찾는 기능까지, 모두 다 Sequence프로토콜 안에 정의되어있습니다. Sequence가 가장 단순한 것이고, 나머지는 Sequence를 기반으로 작성된것들입니다. [정의] 해당 요소에 대한 순차반복 엑세스를 제공하는 유형입니다. 예시) 문자열 값, 배열, 컬렉션타입의 값들? [특징] 시퀀스는 한 번에 하나씩 단계별로 수행할 수 있는 값의 목록이다. 시퀀스의 요소를 반복하는 가장일반적인 방법은 for in 루프를..
부동소수점이 발생하는 이유? 부동소수점(Floating-Point Numbers)이란 ? Floating-Point Numbers Floating-point numbers are numbers with a fractional component, such as 3.14159, 0.1, and -273.15. 부동소수점이란 위와같이 3.14159, 0.1, and -273.15와 같은 소수구성요소가 있는 숫자를 말한다. Floating-point types can represent a much wider range of values than integer types, and can store numbers that are much larger or smaller than can be stored in an Int. Swift provi..
[Swift] SOLID(객체지향설계) 예시로 알아보기 - Reference https://dongminyoon.tistory.com/49 # SOLID (객체지향설계) - [정의] SOLID란 로버트 마틴이 2000년대 초반에 명명한 객체지향 플그래밍 및 설계의 다섯가지 기본원칙을 마이클 패더스가 두문자어 기억술로 소개한것임 - [만들어진이유] 코드의 유지보수와 확장이 쉬운시스템을 만들고자 원칙을 만든것이다. SOLID원칙들은 소프트웨어 작업에서 프로그래머가 소스코드가 읽기 쉽고 확장하기 쉽게될떄까지 소프트웨어 소스코드를 리펙터링하는것이다. [원칙의 종류] S. 단일책임원칙(Single responsibility principle) 한 클래스는 하나의 책임만 가져야한다. O. 개방폐쇄원칙(Open/closed principle)** 소프트웨어 요소는 확장에..
20220314 / D21 / UnitTest & TDD UnitTest 테스트를 하는것은 어떤 의미를 가질까요 ? 안정성을 보장한다. 유지보수에 유리하고 스펙을 문서화할 수 있고 코드에 자신감이 생기고 깔끔한 코드 작성이 가능하다 유닛테스트란 컴퓨터 프로그래밍에서 소스코드의 특절 모듈이 의도된 대로 정확히 작동하는지 검증하는 절차이다. 즉 모든 함수와 메소드에 대한 테스트 케이스를 작성하는 절차를 말한다. 이를 통해 언제라도 코드 변경으로 인해 문제가 발생할 경우, 단 시간내에 이를 파악하고 바로 잡을 수 있도록 해준다. 가짜 객체를 생성하는 것도 좋은 방법이다. 유닛테스트는 개발자뿐만아니라 보다 더 심도있는 테스트를 위해 테스터에 의해 수행되기도 한다. 유닛테스트의 이점 해당 부분(메서드)에 대해서 독립적으로 테스트를 하기 때문에 빠른 리팩토링 반영과 빠른..
[iOS] Retain Cycle에 대해 알아보자(Feat. Delegate) Retain Cycles, Weak in Swift - reference - https://baked-corn.tistory.com/30 스위프트에서 메모리관리에대한 기본적인것부터 알아봅시다. Retain Cycle이 무엇인지, 그리고 Weak키워드를 통해 어떻게 이러한 현상을 피할 수 있는지에 대해 알아보도록 합시다. 그 이후로는 Retain Cycle이 일어나는 가장 흔하다는 시나리오 인 Delegate패턴을 알아봅시다. # 스위프트에선 메모리 관리를 어떻게하나요 ? ARC( AutoMatic Reference Counting)은 대부분의 메모리 관리를 당신을 위해해줍니다. 원리는 간단한데 기본적으로 클래스 객체를 가리키는 각각의 reference(참조)는 강한참조입니다. 최소한 하나의 강한참조가 있..