반응형

Old_SWIFT(221012) 68

우선순위 큐, 힙 구현하기

안녕하세요. KataRN입니다. 오랜만에 글을 쓰네요. 오늘은 우선순위 큐, 힙에 대해 알아보겠습니다. 오늘도 차례차례 알아볼게요. 1. 큐란 무엇일까요? 먼저 들어간 데이터가 먼저 나가는 데이터구조를 큐(Queue)라고 하죠. 2. 우선순위 큐란 무엇일까요? 우선순위 큐는 먼저 들어간 데이터가 먼저 나가는 것이 아닌 우선순위가 높은 순서대로 데이터가 나가는 것을 우선순위 큐(Priority Queue)라고 합니다. 3. 힙이란 무엇일까요? 힙(Heap)은 우선순위 큐를 위해 고안된 완전이진트리 형태의 자료구조입니다. 여러 개의 값 중 최댓값 또는 최솟값을 찾아내는 연산이 빠르다. (우선순위가 최대이면 최댓값, 최소이면 최솟값입니다.) 4. 이것을 왜 알아야하나? 단순하게 알고리즘에서 최대값 최소값을 구..

TableView 알아보기(UITableViewDatasource, UITableViewDelegate)

안녕하세요. KataRN입니다. 오늘은 tableView에 대해 알아보겠습니다. tableView가 참 많은 기능이 있는데 쓰는것만 쓰는것 같아서요. 해당 글은 패스트캠퍼스 강의를 참고하여 만들었습니다.(내돈내산, 광고아님, 추천은함) 우선 뭐가있는지 알아보죠. UITableView에는 2가지 객체가 있습니다. 1. UITableView DataSource 테이블 뷰를 생성하고 수정하는데 필요한 정보를 테이블 뷰 객체에 제공합니다. 2. UITableView Delegate 테이블 뷰의 시각적인 부분을 설정하고, 행의 액션 관리, 엑세서리 뷰 지원 그리고 테이블 뷰의 개별 행 편집을 도와줍니다. 기본적으로 tableView는 아래 2가지 함수가 필수입니다. func tableView(UITableView..

IBInspectable, IBDesignable 다루기

안녕하세요. KataRN입니다. 오늘은 IBinspectable, IBDesignable에 대해 알아보겠습니다. 우선 IBinspectable, IBDesignable에 대해 설명드려야겠군요 만약에 저희가 스토리보드를 통해서 view의 모서리를 둥글게 하고싶다! 코드로는 당연히 가능합니다. 그럼 스토리보드로 가능할까요? 정답은 없지만 가능하다입니다. ... ??? 없는데 가능하다????.. 없으면 있게 만들면 되니까요. ??? 이렇게 스토리보드에 없는 항목을 넣을때 필요한것입니다. 자세한건 예제로 설명드리겠습니다. 아래 오른쪽사진을 보시면 오른쪽 영역을 inspector이라고 합니다. 저희가 알아보려는건 IBInspectable이었죠? 비슷합니다. 저희가 속성을 추가하려는 View(왼쪽사진)의 Custo..

알림창(UIAlertAction, Alert, ActionSheet, addTextField) 다루기

안녕하세요. KataRN입니다. 오늘은 알림창에 대해 알아보겠습니다. 알림창의 경우 활용도가 높아 자주쓰는 기능입니다. 알림창은 UIAlertController로 만들 수 있습니다. preferredStyle에따라 .alert, .actionSheet로 나눠집니다. 아래 애플 공식문서 링크 남기겠습니다. https://developer.apple.com/documentation/uikit/uialertcontroller Apple Developer Documentation developer.apple.com 우선 알림창 코드와 사진을 보여드리겠습니다. @IBAction func touchUpAlertButton(_ sender: UIButton) { let alert = UIAlertController(..

UserDefaults(데이터저장) 다루기

안녕하세요 KataRN입니다. 오늘은 데이터를 저장하는 방법에 대해 이야기해보려합니다. 저희가 앱의 환경설정에서 설정을 하면 앱에서 기억을 해야합니다. 왜냐면 앱을 껏다키면 보통 데이터가 지워지죠? 그래서 앱내에 데이터를 기억시켜야합니다. 그때 Userdefault를 이용하여 데이터를 기억시킵니다. 우선 아래 데이터를 저장하는방법입니다. let userdefault = UserDefaults.standard userdefault.set(1, forKey: "숫자") userdefault.set("A", forKey: "문자") userdefault.set(true, forKey: "진실혹은거짓") let array = ["a", "b", "c"] userdefault.set(array, forKey: "..

화면 간 데이터전달하기(쉬움주의, 따라만해)

안녕하세요. KataRN입니다. (수정_220120) 2개의 글을 하나로 합쳤습니다. 오늘은 화면간의 데이터 전달에 대해서 알아보겠습니다. 화면에서 화면으로 이동할때 데이터를 전달하고 받는 방법입니다. 여러가지 방법들이 있는데 매번 뭘써야되는지 왜써야되는지를 고민해왔는데 일단 뭐가 있는지부터 파악해보도록하죠. 프로퍼티에 직접 접근하는 방식 segue를 이용해서 전달 delegate 패턴을 이용한 방식 closure를 이용한 방식 NotificationCenter와 Observer pattern을 이용한 방식 1. 프로퍼티에 직접 접근 - 프로퍼티와 함수를 이용해서 데이터를 주고 받아보겠습니다. 1-1. A화면에 버튼을 누르면 데이터가 B화면에 들어가도록 B화면의 Data에게 데이터를 넘겨줍니다. 1-2...

화면전환하기, 화면이동하기(쉬움주의, 따라만해)

안녕하세요. KataRN입니다. 오늘은 화면전환 하는 방법에 대해 알아보겠습니다. 크게 4가지 방법이 있습니다. ViewController의 view를 바꾸기 현재 ViewController에서 다른 ViewController를 호출하여 화면전환하기(present) NavigationController를 이용하여 화면전환하기(push) 화면전환용 객체 Segue를 이용하여 화면전환하기(show, present) 1. ViewController의 view를 바꾸는 방법입니다. - 메모리 overflow 위험이 있기 때문에 사용하지 않습니다. - 방법은 있으나 이 글을 읽는 분들께서는 아래 3가지 방법으로도 충분할 것이기 때문에 소개하지 않겠습니다. 2. 현재 ViewController에서 다른 ViewC..

다양한 그래프 그리기(라이브러리 Charts 사용, 파이차트, 원차트 포함)(쉬움주의, 따라만해)

안녕하세요 KataRN입니다. 오늘은 라이브러리 'Charts'를 사용하여 그래프를 만들어보겠습니다. 라이브러리 'Charts'의 링크입니다. https://github.com/danielgindi/Charts 참고 : 아래 사이트의 글을 번역한 수준으로 거의 비슷하게 만들 예정입니다. https://iosapptemplates.com/blog/swift-programming/ios-charts-swift 참고 : 라이브러리 없이 만든 파이차트(파이그래프, 원그래프)는 아래 링크를 참고해주세요. https://katarnios.tistory.com/20 파이차트그리기(2) + UIBezierPath + 시간표그리기 let centerCircle = UIBezierPath(arcCenter: center,..

CocoaPods(코코아팟) 사용법(쉬움주의, 따라만해), Charts라이브러리 설치

안녕하세요 KataRN입니다. 오늘은 코코아팟에 대해 알려드리려고 합니다. 우선 코코아팟이란? "CocoaPods는 Swift 및 Objective-C 코코아 프로젝트의 종속성 관리자입니다. 80,000 개가 넘는 라이브러리를 가지고 있으며 300 만 개가 넘는 응용 프로그램(앱)에서 사용되고 있습니다. CocoaPod은 프로젝트를 우아하게 확장할 수 있도록 도와줍니다."라고 공홈(https://cocoapods.org/)에서 소개하고 있습니다. 사실 사용법도 간단하며 공홈에 잘 나와있습니다...만? 처음에 보면 이해가 안갑니다... 간단하게 설명드리겠습니다. 오픈 라이브러리를 사용하기 위해서입니다. 보통 오픈 라이브러리를 쓰면 작업시간도 줄고 코드의 가독성도 올릴 수 있고 등등 다양한 장점이 있어서 대..

NotificationCenter 다루기(쉬움주의, 따라만해)

안녕하세요. KataRN입니다. 오늘은 NotificationCenter에 대해서 알아보겠습니다. 혹시 데이터 전달을 위한 다른 방법을 원하시는 분은 아래글을 참고해주세요~ https://katarnios.tistory.com/28 화면 간 데이터전달하기(쉬움주의, 따라만해) 안녕하세요. KataRN입니다. (수정_220120) 2개의 글을 하나로 합쳤습니다. 오늘은 화면간의 데이터 전달에 대해서 알아보겠습니다. 화면에서 화면으로 이동할때 데이터를 전달하고 받는 방법입니다. katarnios.tistory.com NotificationCenter란? (직설적으로 기능으로 설명하겠습니다.) 화면A에 관찰자를 등록합니다. 그리고 관련이없는(관련이있어도됨) 화면B에서 등록된 관찰자에게 편지를 보냅니다. 그럼 ..

반응형