안녕하세요! 오늘은 타입캐스팅에 대해 배워보았습니다. 타입캐스팅이란? 인스턴스의 타입을 확인하거나 인스턴스를 같은 계층에 있는 다른 상위 클래스나 하위 클래스로 취급하는 방법 (출처: 공식 문서) 인스턴스의 타입을 확인하거나 인스턴스 자신의 타입을 다른 타입의 인스턴스인 것처럼 사용할 때 활용되는 개념입니다. 쉽게 말해서, 1) 인스턴스의 타입을 확인할 수 있고 2) 인스턴스의 타입을 (일시적으로) 바꿔줄 수 있는 것이 타입캐스팅입니다! 공식 문서의 예제 코드로 복습해보겠습니다. 기본 코드 작성 우선 base 클래스 MediaItem을 정의해주고, MediaItem을 상속받는 Movie, Song이라는 클래스를 정의해줍니다. // base class 인 MediaItem을 정의해준다. class Medi..
모듈화와 프레임워크, 접근 제어에 대해 알아보자. 모듈화란? 모듈: 프로그램을 기능별로 분할한 논리적인 일부분 모듈이란 쉽게 설명하자면 코드의 묶음 단위이다. 하나의 프레임워크나 라이브러리, 애플리케이션을 모듈이라고 할 수 있다. 모듈화를 이해하기 위해서는 다음과 같은 예시를 들 수 있겠다. 하나의 회사가 다양한 앱을 만들어 공통적으로 사용하는 기능이 많을 수 있다. 예를 들어 카카오에서 만든 카카오톡, 카카오 버스나 카카오 택시, 카카오맵 등 여러 가지 앱이 있을 수 있는데 이 때 공통적으로 같아야 하는 컴포넌트들이 있을 수 있다. (예를 들면 팝업뷰가 띄워진 모습이라든지, 버튼의 모양 등) 이들을 한데 모아 하나로 관리할 수 있는 방법이 없을까? 라는 생각에서 만들어진 개념이 바로 모듈화이다. 즉, ..
테이블뷰 안녕하세요 오늘은 테이블뷰에 대해 정리해보려고 합니다! iOS 개발에 있어서 필수로 숙지해두어야 하는 개념인 만큼 자세하게 다루어 보겠습니다 테이블 뷰란? 테이블 뷰란 단일 열에서 수직으로 스크롤되는 콘텐츠입니다. (출처: 공식 문서) 쉽게 말하자면! 하나의 열에 수직으로 쭉 데이터가 나열되어 스크롤할 수 있는 뷰라고 할 수 있을 것 같네요. 또한 하나의 행마다 앱의 데이터가 조금씩 들어가있습니다. 예를 들어, 연락처 앱에 들어가보면 사람들의 이름이 세로로 나열되어 있습니다. 한 사람의 이름을 터치하면 그 사람의 연락처 정보가 나타납니다. 여기에서 쓰인 것이 바로 테이블 뷰 TableView 라고 하고, 한 명 한 명이 들어있는 행은 셀 Cell 이라고 표현합니다. 테이블 뷰의 필요성 데이터를 ..
문제 → 해결 Invalid escape sequence in literal → String에 \같은 기호 문자 들어가있을 때 No exact matches in call to instance method 'append’ → 타입이 다를 때 (ex. Array 타입이 아닌데 append를 시도함 등) 타입을 확인해보면 됨 TableViewCell, CollectionViewCell에 API 결괏값을 넣어줄 때, 첫번째 cell의 값에는 왜 아직 안 들어가있지? → reloadData() 잘 사용하기! Unexpectedly found nil while implicitly unwrapping an Optional value → nib 연결 안해줬거나 tableView.dequeueReusableCell 안..
안녕하세요! 오늘은 iOS의 화면 전환에 대해 살펴보려고 합니다. 화면 전환의 필요성 앱을 개발할 때, 화면 전환이 왜 필요할까요? 생각해봅시다! 작은 휴대폰 화면에서 사용자가 한 번에 볼 수 있는 부분은 한정되어 있습니다. 설정 화면의 일반 탭을 들어가 봅시다. 아이폰의 기기 정보에 관한 것, 키보드에 관한 것, 저장공간에 관한 것 등 여러 주제로 카테고리화 된 제목들이 나타납니다. 만약 이 탭 안의 정보들이 카테고리별로 나누어져있지 않고 모두 한 화면에 나열되어 있다면 어떨까요? 설정하기를 원하는 부분을 찾는데 굉장히 오랜 시간이 걸릴 것 같네요. 이처럼 제한된 스크린 크기 내에서 적절한 정보를 제공하기 위해 화면 전환은 매우 중요한 역할을 합니다. 화면 전환 방식 애플에서는 주로 지정된 기본적인 화..
안녕하세요! ViewController 파일처럼 스토리보드도 여러 파일로 나누어서 활용해볼 수 있는데요, 오늘은 스토리보드 추가하는 방법에 대해서 간단하게 알아보려 합니다! 스토리보드 추가하기 Xcode 왼쪽 탭에서 New File 선택해주시고 Storyboard를 추가하면 됩니다! (스토리보드마다 Entry point도 존재한다는 점 알아두세요) 그런데, 스토리보드가 프로젝트에 여러 개 있을 때는 어떤 부분이 먼저 동작할까요? Main 스토리보드 말고, 이후에 만든 스토리보드를 메인으로 동작하게 하는 방법도 있을까요?? 이어서 진행해보겠습니다! 시작 스토리보드 지정하기 프로젝트 설정 - Targets - Deployment Info 에서 Main interface를 보시면 드롭다운 형태로 현재 프로젝트..