2024/11/14 5

상속(Inheritance)과 프로토콜(Protocol)의 차이점은 무엇인가요?

상속(Inheritance)과 프로토콜(Protocol)은 Swift에서 객체지향 프로그래밍(OOP) 및 프로토콜 지향 프로그래밍(POP)을 구현하기 위한 두 가지 주요 개념입니다. 이 둘은 비슷한 목적을 가지고 있지만 사용 방식과 목적에서 몇 가지 차이점이 있습니다. 1. 상속(Inheritance)정의: 상속은 클래스가 다른 클래스의 속성과 메서드를 물려받는 기능입니다. Swift에서는 단일 상속만 지원되며, 하나의 클래스는 하나의 부모 클래스만 가질 수 있습니다.사용 목적: 상속을 통해 코드 재사용이 가능하며, 부모 클래스의 기능을 확장하거나 수정하기 위해 사용됩니다.예시: 부모 클래스에 있는 기본 속성이나 메서드를 자식 클래스에서 사용하거나 오버라이딩하여 고유한 기능을 추가할 수 있습니다.clas..

정보/레벨 1 2024.11.14

ARC(Automatic Reference Counting)의 동작 원리는 무엇인가요?

ARC(Automatic Reference Counting)는 Swift와 Objective-C에서 객체의 메모리를 관리하는 시스템입니다. ARC는 객체가 더 이상 필요하지 않게 될 때 자동으로 메모리를 해제하여 메모리 누수를 방지하고, 수동으로 메모리를 해제해야 하는 번거로움을 줄여줍니다. ARC의 동작 원리는 객체의 **참조 카운트(reference count)**를 기반으로 하며, 아래와 같은 방식으로 작동합니다. 1. 참조 카운트 기반 관리ARC는 객체에 대한 **강한 참조(strong reference)**를 추적하여 객체가 얼마나 많이 참조되고 있는지 관리합니다.각 객체는 참조될 때마다 참조 카운트가 증가하고, 참조가 해제되면 참조 카운트가 감소합니다.참조 카운트가 0이 되면 객체가 더 이상 ..

정보/레벨 1 2024.11.14

UIKit에서 TableView와 CollectionView의 차이점은 무엇인가요?

UIKit에서 UITableView와 UICollectionView는 데이터를 표시하기 위한 두 가지 주요 컴포넌트로, 각각 특정한 목적과 방식에 맞게 설계되었습니다. 둘의 차이점을 요약하자면 다음과 같습니다:1. 레이아웃 구조UITableView는 기본적으로 단일 열로 구성되며, 세로 스크롤만 가능합니다. 즉, 데이터를 단순히 세로로 나열할 때 적합합니다.UICollectionView는 그리드 형식을 지원하여 다중 열과 행을 구성할 수 있습니다. 또한 가로 및 세로 스크롤을 모두 지원하기 때문에 더 복잡하고 유연한 레이아웃을 표현하는 데 적합합니다.2. 데이터 구조 및 표현 방식UITableView는 섹션과 행으로 구성됩니다. 각 섹션 안에 여러 개의 행이 배치되는 구조이며, 특정 행을 선택하는 did..

정보/레벨 1 2024.11.14

오류 처리 함수 구현

https://explorer89.tistory.com/214 Swift의 에러 처리 방법에 대해 설명해주세요.Swift에서 **에러 처리(Error Handling)**는 프로그램 실행 중 발생할 수 있는 예외 상황에 대비하여 오류를 처리하고 안정적으로 코드가 실행될 수 있도록 도와줍니다. Swift는 명확하고 안전한 에러 처explorer89.tistory.com  do-catch 구문은 Swift에서 오류가 발생할 수 있는 코드의 실행을 감싸는 구문으로, 오류 발생 시 처리 방법을 지정할 수 있습니다. 이 구문은 특히 파일 입출력이나 데이터베이스와 같은 작업에서 유용하며, Swift는 이러한 오류 발생 가능성이 있는 함수에서 throws 키워드를 사용하여 호출자가 오류를 처리할 수 있도록 합니다. ..

iOS/Swift 2024.11.14

FileManager 사용방법 - 수정

https://explorer89.tistory.com/217 FileManager 사용하는 기본 방법 (이미지를 경로로 저장하여 코어 데이터에 가져다 사용하기)1단계: 파일 경로 설정하기파일을 저장하거나 불러오기 위해 기본적으로 앱의 Documents Directory 경로를 설정합니다. 이 경로는 파일을 영구적으로 저장할 위치를 지정합니다.import Foundation// FileManagexplorer89.tistory.com  이전에 작성했던 FileManager 사용방법에서 수정할 내용이 있습니다.  이미지를 저장할 때, feedID를 사용하고, 피드 자체를 저장할 때도 feedID를 사용하여 혼용이 있었습니다. 그래서 발생한 문제가, 코어 데이터에 삭제 기능을 추가했음에도 테이블뷰에서는 삭제..

iOS/UIKIT 2024.11.14