Swift, iOS Foundation(24)
-
[Swift] 구조체(Struct)와 클래스(Class) 완전 정복하기: 기본 개념부터 프로퍼티, 인스턴스, 상속까지
이번 글에서는 구조체(Struct)와 클래스(Class)에 대해 아주 자세하게 다뤄보려 한다. 처음 Swift를 배우는 입장도 아닌데, 이제 와서 이 내용을 포스팅하는 이유가 뭐냐고 물어본다면... 음... 몇 번 반복에서 강조해도 아깝지 않을 만큼 정말 중요하기 때문이랄까.....? 본격적으로 들어가기 전에, 객체지향 프로그래밍에서의 중요한 4가지 특성을 먼저 간단하게 살펴보겠다. 왜냐고? 구조체와 클래스를 배우는 내용이 객체지향 프로그래밍에서의 중요한 특징에 많이 해당하기 때문이다. 얼만큼 해당하는지 한번 살펴볼까? 1️⃣ 추상화 : 객체의 공통적인 속성과 기능을 추출하여 정의하는 것 [오늘 배울 클래스, 구조체와 관련] 2️⃣ 캡슐화, 은닉화 : 목적에 따라 데이터 구조 및 처리 방법을 결합시키고,..
2022.01.22 -
[Swift] IBOutlet Collection이란 무엇일까?
이번 글은 iOS 개발을 하면서 아주 유용하게 쓸 수 있는 꿀팁을 하나 가져왔다. 나도 코드 리뷰에서 알게 된 내용인데, 성격이 같은 넘버링으로 되어있는 Outlet 변수들을 묶어서 사용하는 방법이 있다고 한다. 그것이 바로 IBOutlet Collection이라는 것을 활용하는 방법인데, 바로 어떻게 사용하는지 확인하러 가보자 ^__^ iOS 개발을 하면서, 특별한 이유 없이, first.. second.. third... 이런 순서대로 나열되어 있는 것들을 만들어본 적이 있지 않은가..? @IBOutlet weak var firstTmiLabel: UILabel! @IBOutlet weak var secondTmiLabel: UILabel! @IBOutlet weak var thirdTmiLabel:..
2022.01.09 -
[Swift] @IBInspectable, @IBDesignable을 사용해보자
Xcode에서 커스텀 뷰를 만들어 사용할 때, 신기하기도 하고 꿀팁이기도 한 속성에 대해서 오늘은 다뤄보려 한다. @IBInspectable, @IBDesignable이라는 속성인데, 이 친구들을 사용하면 "스토리보드에서 실시간으로 랜더링을 하는 것이 가능"하게 된다. 이것이 무슨 말인지는 글을 읽어보며, 하나씩 이해해보자. 1️⃣ 뜻부터 하나씩 알아보자 우선, Swift에서 @는 코드 자체의 특성을 가리킬 때 사용하는 키워드이다. 컴파일러에게 어떤 속성이 부여되었음을 알리는 역할이라고 생각하면 된다. IB는 Interface Builder의 줄임말이다. Xcode에서는 스토리보드를 가리킨다고 이해하면 된다. 즉, 우리가 흔히 사용했던 @IBAction func 키워드는 컴파일러에게 인터페이스 빌더와 A..
2021.12.20 -
[Foundation] UserDefaults를 사용해서 데이터를 전달하는 방법
iOS에서는 ViewController 간 데이터를 전달하는 방식을 크게 2가지로 나눌 수 있다. 데이터를 직접 전달하는 직접 전달(동기) 방식과, 데이터를 저장하고 필요할 때 꺼내오는 방식인 간접 전달(비동기) 방식으로 나누어진다. 오늘은 이 두 방식 중에서, 필요할 때 값을 꺼내올 수 있도록 쓸 수 있는 비동기 방식 중, UserDefaults라는 것을 사용하는 방법에 대해 공부를 해보려고 한다. UserDefaults란 iOS 프로젝트 내에 있는 데이터 저장소라고 이해하면 된다. 기본 프로젝트 폴더를 보면 info.plist라는 파일이 있는 것을 확인할 수 있는데, UserDefaults도 plist처럼 Key-Value 형태로 값을 저장하고 꺼내올 수 있는 것이 특징이다. UserDefaults ..
2021.12.17 -
[Swift] 함수 앞에 private가 붙어 있던 이유, 접근 제어(Access Control)
💡 접근 제어(Access Control)란?특정 코드에 다른 파일과 모듈이 접근할 수 있는 범위를 제한하는 것이다.클래스, 구조체, 열거형, 프로퍼티, 메서드 등 전혀 상관없이 코드 모든 곳에 적용할 수 있고,Swift에서는 총 5가지 접근 수준(Access Level)에 따른 각각의 키워드를 사용해서 적용을 하게 된다.✔️ 객체지향 프로그래밍에서의 캡슐화(Encapsulation), 은닉화(Hiding) 개념이 적용되었다고 보면 된다. 💡 접근 제어가 왜 필요한데?세부적인 코드의 구현 내용을 접근 제한해서 큰 틀에서 재사용할 수 있을 만큼만 공개를 하기 위해서이다.또한, 불필요한 접근이 발생해 예상치 못한 결과를 초래하는 경우를 막거나, 공유하고 싶지 않은 내용을 가리기 위해서 사용한다.(SNS에..
2021.11.08