Swift 40

Push Notification 과 APNS - iOS

Notification에 대해 공부하고 정리하려니 끝도 없어서 오늘은 Push Notification의 개괄적인 내용에 대해 우선작성하고 추후에 PushNofigication을 보내보는 실습 프로젝트에 대해 업로드 하면서 자세히 작성하고자 합니다! . . . . Push Notification 이란? iOS입장에서 알림을 받는 상황은 두 가지가 있습니다. 1. forground 상태일 때(사용자가 앱을 사용중일 때, 화면에 보여질때) 2. backgorund 상태일 때(사용자가 앱을 사용하지않고 있을 때, 화면에 보여지지 않을 때) foreground 상태일 때는 앱에서 특정 시점에 알림을 보내면 되지만, "만약 background 상태이면..? 앱이 실행중이지 않은 상태라면..?" 어떻게 처리해주어야..

iOS 2022.04.14

Class와 Struct에 대하여 간단정리 - Swift

구조체와 클래스는 OOP를 위한 필수요소로 프로그램 코드를 추상화하기 위해 사용한다. Q. 클래스/구조체로부터 A인스턴스를 생성하고, B인스턴스에 A인스턴스를 대입한 후 B인스턴스의 값을 변경하면? Class 참조 타입(referenceType) 이다. 하나의 복제된 데이터를 할당한 인스턴스들이 함께 공유한다. 참조타입의 인스턴스들은 하나의 복제된 데이터를 공유한다. (즉, B인스턴스에는 A인스턴스의 참조 값이 전달된다.) 매번 새로운 인스턴스를 만들 때마다 같은 메모리 주소를 참조한다. - 상속이 가능하다. - 프로토콜 사용 가능하다. - extension 을 할 수 있다. - subscript 사용 가능하다. - 타입캐스팅이 가능하다. - Reference Count 계산에 포함된다. ex) clas..

Swift 2022.04.12

BFS/DFS 간단 예제 - Swift

개념 BFS (Breath First Search) 너비 우선 순회 queue로 구현 (queue를 활용하기 때문에 FIFO) 장점 : 최적해를 찾을 것을 보장한다 ex) 지구 상에 존재하는 모든 친구 관계를 그래프로 표현 후, 짱구와 철수 사이의 관계 경로를 찾는 경우 BFS : 짱구와 가까운 관계부터 살핀다 DFS : 지구 상 모든 관계를 다 살펴봐야할지도,, 로직 시작 노드를 큐에 삽입하고 방문처리 큐에서 노드를 꺼낸 뒤 해당 노드의 인접 노드 중 방문하지 않은 노드를 모두 큐에 삽입 후 방문처리 (방문하면 현재 위치는 pop해주고 방문처리 -> 방문할 곳은 queue에 넣음) DFS (Depth First Search) 깊이 우선 순회 stack과 재귀 함수로 구현 두 노드 사이의 최단 경로 혹..

[자료구조] Trie - Swift

Trie 문자열 검색 문제에 특화된 트리 형태의 자료구조. 원하는 문자열을 O(m) (m = 문자열의 길이) 시간복잡도로 찾을 수 있다. struct Trie 내의 Trie 포인터 배열을 가지고 해당 키에 맞는 포인터로 이어지는 구조. Trie는 검색 후보 문자열을 하나의 트리로 만들어서, 한번의 검색 O(m) 만으로 문자열의 존재 여부를 검색 가능하다. 주의 항상 첫번째 root 노드는 빈칸이다. 트라이 객체마다 트라이 포인터 배열을 경우의 수만큼 가져야 하므로 공간복잡도가 매우 커질 수 있다. 공간복잡도 : O(key의 경우의수 * 포인터 크기 * 전체 트라이에 존재하는 노드 수) 필수 1) 다음 두 가지를 가지고 있어야 한다. - child (자식 노드를 담는 배열) - isTerminal (어떤 ..

github에 올리면 안되는 APIKEY 숨기기 - iOS

화면과 같이 간단한 프로젝트를 바탕으로 설명하겠습니다. 프로젝트는 여기 링크로 가시면 상세 코드 및 화면 구성을 확인하실 수 있습니다! 화면은 아래와 같이 간단하게 구성하였습니다. 우선 api 호출이 성공하신 후에 api관련 설정을 해주세요! (위의 프로젝트 같은 경우 Alamofire, swiftyJSON을 사용하여 json 형식의 api 데이터를 가져와 사용하고 있습니다.) 저는 우선 API 관련 설정은 끝났고, 그 결과가 label에 잘 뜨는지 확인한 결과 다음과 같이 잘 출력되는 것을 볼 수 있습니다! (이 포스트를 작성 후 참고하실 수 있게 같은 프로젝트로 api 호출 하는 과정을 간단하게 포스팅할까 생각중입니다.) api 호출이 어려우신 분은 그것 부터 연습해보시는게...어떠할지..! 본격적으..

iOS 2021.10.26

문자열에서 특정문자"들"을 다른 문자로 치환하는 방법 - Swift

옛날에 코테 문제풀 때 다른 방법이 있었던 것 같은데.. 기억이 안나서 extension하나 만들었습니다 extension String { func replaceTargetsToReplacement(_ occurs: [String], _ replacement: String) -> String { var converted = self for occur in occurs { converted = converted.replacingOccurrences(of: occur, with: replacement) } return converted } } 다른 방법 아시는 분 있으면 댓글로 알려주세요! 🙏🏻

Swift 2021.10.23

랜덤 색상을 쓰고 싶을 때 추가하면 되는 extension - iOS

// random(in:) 안에 있는 variation은 원하는 범위로 수정하시면 됩니다. extension UIColor { class var ramdomColor: UIColor { return UIColor( red: CGFloat.random(in: 0.7...1), green: CGFloat.random(in: 0.7...1), blue: CGFloat.random(in: 0.7...1), alpha: 1 ) } } // 사용 방법 view.backgroundColor = .randomColor 틀린부분이 있거나, 더 좋은 방법이 있다면 댓글로 남겨주세요! 🌈댓글은 언제나 환영입니다🙏🏻

iOS 2021.10.23

문자열에서 특정문자"들"을 원하는 문자로 치환하는 방법 - Swift

replacingOccurrences(of: 치환하고싶은문자, with: 치환하고자하는 문자) var text = "해리 포터: 불의 잔" text = text.replacingOccurrences(of: " ", with: "_") print(text) // "해리_포터:_불의_잔" https://developer.apple.com/documentation/foundation/nsstring/1412937-replacingoccurrences Apple Developer Documentation developer.apple.com 틀린부분이 있거나, 더 좋은 방법이 있다면 댓글로 남겨주세요! 🌈댓글은 언제나 환영입니다🙏🏻

Swift 2021.10.23

[프로그래머스 L2] N개의 최소공배수 - swift

문제링크 https://programmers.co.kr/learn/courses/30/lessons/12953 코딩테스트 연습 - N개의 최소공배수 두 수의 최소공배수(Least Common Multiple)란 입력된 두 수의 배수 중 공통이 되는 가장 작은 숫자를 의미합니다. 예를 들어 2와 7의 최소공배수는 14가 됩니다. 정의를 확장해서, n개의 수의 최소공배 programmers.co.kr 문제 요약 두 수의 최소공배수란 입력된 두 수의 배수 중 공통이 되는 가장 작은 숫자를 의미합니다. n개의 수의 최소공배수는 n개의 수들의 배수 중 공통이 되는 가장 작은 숫자가 됩니니다. n개의 숫자를 담은 배열 arr가 입력되었을 때 이 수들의 최소공배수를 반환하는 함수를 완성. - arr의 길이는 1이상 ..

최대공약수, 최대공배수 구하는 함수 - swift

최대 공약수 ( Greatest Common Divisor ) 주어진 숫자를 소인수 분해해서 나오는 수들을 '약수'라고 한다. 예를 들어 12의 약수는 [1, 2, 3, 4, 6, 12] 이다. 18의 약수는 [1, 2, 3, 6, 9, 18] 이다. 여기서 공통된 약수들을 '공약수' 라고 부른다. 12, 18의 공약수는 [1, 2, 3, 6] 이다. 공약수 중에 가장 큰 수를 '최대 공약수'라고 부른다. (위의 예시에서는 공약수 중에 가장 큰 수가 6이므로 최대공약수는 6 이다.) 최대 공약수는 다음과 같이 구한다. func GCD(_ min: Int, _ max: Int) -> Int { let rem = min % max if rem == 0 { // 나머지가 0인 수. 즉, 약수를 의미한다. re..

Swift 2021.09.30
반응형
1 2 3 4