분류 전체보기 181

iOS ) NSOperationQueue & GCD Queue

제르시님 깃허브 면접질문 NSOperationQueue와 GCD Queue의 차이점 (task-based concurrency model) 1. NSOperationQueue Objective-C API 작업 대기열(Operation Queue)은 우선 순위와 준비 상황, 상호작용 의존성에 따라 큐에 있는 NSOperation 객체를 호출한다. 만약 우선순위가 같고, 준비상태인 경우 큐에 추가한 순서대로 호출하게 됨 큐에 작업을 추가한 후, 작업을 완료할 때까지 큐에 남아 있으며 큐에 추가한 작업을 직접 제거할 수 없다. *** 작업이 완료되기 전까지 operation queue에서 작업을 유지하는데, 큐 자체가 모든 작업이 완료되기 전까지 유지된다. 따라서 작업이 완료되지 않은 상태에서 작업 대기열을 ..

iOS - 면접 2022.10.12

iOS ) 앱의 컨텐츠/데이터를 저장/보관하는 객체 정리

제르시님 깃허브 면접질문 참고 앱의 컨텐츠 / 데이터 자체를 저장/보관하는 특별한 객체를 무엇이라고 하는가? 1. UserDefaults 스위프트에서 제공하는 클래스로, 시스템 기본값에 접근할 수 있게 한다. 사용자의 기본 DB에 key-value pair 형태로 값을 저장/사용할 수 있는 데이터 저장소를 제공함. 데이터 저장소로의 역할을 할 수 있는 것이지, UserDefault 자체가 데이터 저장소라는 것이 아님! 자주 쓰이는 접근하기 때문에 필요할 때마다 DB에 접근하는 것이 아니라, 정보를 캐싱한다. int, float, bool 등의 기본 자료형은 물론, NSData, NSString, NSNumber, NSDate, NSArray, NSDictionary 타입도 저장할 수 있다. 기본적으로 적..

iOS - 면접 2022.09.14

iOS ) 상단 탭바 만들기 (Tabman Library)

Tabman 라이브러리를 사용해 위와 같이 상단탭바를 만드는 방법! 먼저 https://github.com/uias/Tabman 탭맨 깃헙페이지를 보고 원하는 방식으로 라이브러리를 설치해줌 그리고 상단탭바를 사용하려는 뷰컨트롤러에서 작업을 해주면 되는데, Tabman, Pageboy를 import, UIViewController 대신, TabmanViewController를 상속해주고 시작하면 됨! 탭바를 통해 보여줄 뷰컨트롤러들의 배열을 만들어줌 DataSource 관련 프로토콜과, 관련된 메서드들을 사용해주고 이제 위에서 만든 viewControllers 배열 안에, 상단 탭바를 통해 보여줄 viewController들을 넣어주고, datasource를 self로 지정해주면 되는데.. 테스트를 위해 ..

iOS 2022.08.10

iOS ) sheetPresentationController 사용하기 - 화면 하단에 팝업되는 것처럼 보이는 뷰 만들기

iOS 15 이상부터 지원되는 sheetPresentationController 를 이용해 아래와 같이 화면 하단에 팝업되는 듯한 뷰를 만듬 뷰컨트롤러를 sheet 형태로 보여주게 되는 것임 위의 화면에서 네비게이션 바의 버튼을 누르면 새로운 뷰가 반만 올라온 모습 sheet를 보여줄 뷰컨트롤러와, sheet을 나타내는(?) 뷰컨트롤러 두 개가 사용됨 보여주는 뷰컨트롤러를 뷰컨1, sheet UI를 그리는 뷰컨트롤러를 뷰컨2라고 부르겠음 아래와 같은 코드를 뷰컨1에 작성해주면 어떤 형태로 뷰컨2를 나타낼지 커스텀할 수 있음 모든 항목이 들어가야 하는 건 아니고, 입맛에 맞게 커스텀할 수 있다는 것이 장점 detents sheet의 높이를 정해줄 수 있음. 위처럼 medium, large 둘을 모두 넣어주..

iOS 2022.08.07

iOS) ViewController - nib (xib) 만들어서 작업하기 & 다른 파일에서 사용하기

Main.storyboard가 복잡해지면 로딩이 느려지는 등의 문제가 발생할 수 있기 때문에 view controller, collection view cell 등의 nib 파일을 따로 만들어서 작업하는 방법을 알고 있으면 유용하게 쓸 수 있음 New File - Cocoa Touch Class를 선택한 다음, Also create XIB file 을 체크한 상태로 생성해줘도 되고, swift 파일을 만든 후, View를 만들어줘도 됨! 만약 두 번째 방법(View로 생성한 xib파일)으로 만들었다면 추가로 필요한 작업이 있는데, 만들어진 ~~.xib 파일로 접근한 다음, File's Owner 선택, Attributes Inspector에서 클래스 연결해주고 view로 outlet 연결해주면 됨. (첫..

iOS 2022.08.07