전체 글 227

[Swift] iOS 프레임워크 구조

iOS의 기본적인 구조는 이렇게 이루어져있어요 각 계층별로 하나하나 살펴볼게요 우선 최상위에 Cocoa / Cocoa Touch 가있는데 차이가뭘까요?? Cocoa라는 단어가 붙으면 우선 Objective-C Runtime을 기반으로 NSObject를 상속 받는 모든 클래스, 모든 객체를 가리킬 때 사용 하는 단어구요 Cocoa Framework는 Foundation, AppKit 프레임워크를 포함하고 macOS를 개발할 때 사용하는 프레임워크에요 Cocoa Touch Framework는 Cocoa가 붙었죠? 위에서 설명한거에 더해서 앱의 다양한 기능구현에 필요한 다양한 핵심프레임워크(UIKit, Foundation, CoreData, CoreAnimation…등)을 포함하는 최상위 레벨 프레임 워크에요..

iyOmSd/Title: Swift 2020.11.11

[Data Structure] 딕셔너리 구현해보기 Swift Dictionary

스위프트에서 딕셔너리는 자바나 일반 자료구조에서의 HashTable과 같은 개념에요 key-value로 이루어져있고 데이터 간에는 순서가 없죠 우선 HashTable이 뭔지 부터 알아볼까요?? HashTable 이란 key와 value의 쌍으로 이루어진 데이터 타입이에요 매핑하기전 원래값을 key, 매핑후 데이터 값을 hash value(hash code)라고 하며 그 hash value를 배열의 index로 사용하고 그 index에 value를 저장해서 사용하는 방식이에요 Hash함수란 해시 함수는 임의의 길이를 갖는 메시지를 입력받아 고정된 길이의 해시값을 출력하는 함수 왜 사용할까요?? 특정 key값에 해당하는 데이터를 바로 찾을 수 있어요 평균 시간 복잡도 O(1) 최악의 경우는 O(n) - 모든..

[Swift] SceneDelegate

AppDelegate가 궁금하다..!? 2020/08/20 - [iyOmSd/Title: iOS Think🤔] - iOS - App Life Cycle iOS - App Life Cycle 앱의 생명주기에 대해서 알아볼거에요 우선 iOS13을 기준으로 최신버전에는 SceneDelegate라는 파일이 생성되는게 보일거에요 새로운 개념이죠 다음에 알아보도록하구요! 지금은 AppDelegate 위주의 단 nsios.tistory.com 이번엔 SceneDelegate에 대해서만 볼거에요 iOS13 부터 새로생긴 개념이에요 이기능은 아이패드를 사용할 때 앱을 분할해서 여러개를 띄울 수 있죠?? 그기능이 생기면서 생긴 Delegate입니다!! 이렇게 말이죠! 앱과 다른 앱을 한 화면에 동시에..! 이게 새로생겼다..

iyOmSd/Title: Swift 2020.11.04

[iOS] 실제 디바이스가 없을 경우 할 수 있는 것과 없는 것

developer.apple.com/library/archive/documentation/IDEs/Conceptual/iOS_Simulator_Guide/TestingontheiOSSimulator/TestingontheiOSSimulator.html Testing and Debugging in Simulator Retired Document Important: The information in this document is deprecated in Xcode 9. For Xcode 9 and later, see Simulator Help by choosing Help > Simulator Help in Simulator. Testing and Debugging in Simulator Simulator ..

[iOS] Bounds 와 Frame의 차이점

간단히 요약하면 bounds: 자신만의 좌표시스템에서 view의 위치와 크기 frame: 슈퍼뷰의 좌표시스템에서 view의 위치와 크기 가 되겠죠? 이렇게만 들으면 잘 이해가 안될 수 도 있어요 자신의 좌표와 슈퍼뷰의 좌표가 뭐가 다른지 자세히 알아볼까요?? 기본적인 뷰구조는 이런식으로 rootView(흰색)안에 view1(주황색)안에 view2(갈색)가 있는 형태에요 현재 이렇게 보이는 상태에요 생성위치가 (x: 0, y: 0)이니까 모두 왼쪽상단에서부터 시작해요 이상태에서 view1의 frame을 움직여볼께요 frame은 슈퍼뷰 기준좌표계니까 30, 30을 이동한다고하면 view1(주황색)은 rootView(흰색)기준으로 (30, 30)을 이동한 상태가 되요 iOS좌표계는 x가 양수면 오른쪽 y가 양..

[Swift Algorithm] 프로그래머스 17683 방금 그곡 (2018 카카오 블라인드)

programmers.co.kr/learn/courses/30/lessons/17683 코딩테스트 연습 - [3차] 방금그곡 방금그곡 라디오를 자주 듣는 네오는 라디오에서 방금 나왔던 음악이 무슨 음악인지 궁금해질 때가 많다. 그럴 때 네오는 다음 포털의 '방금그곡' 서비스를 이용하곤 한다. 방금그곡에서는 TV, programmers.co.kr 풀이과정 처음에 접근하기위한 생각은 문제에 시간만큼 문자열의 길이가 결정되는 것 같았어요 그래서 시간을 분리해서 계산해서 분단위로 맞추고 분만큼 문자열을 재생성하고 비교를 하면 될것 같았어요 비교할 때 C#, D#, F#, G#, A# 같이 #붙은 경우가있기때문에 contains을이용하게되면 원하는문자열: ABC 생성된문자열: ABC# 이런경우 원하는문자열이 포함..

[Swift Algorithm] 프로그래머스 42890 후보키 (2019 카카오 블라인드)

programmers.co.kr/learn/courses/30/lessons/42890 코딩테스트 연습 - 후보키 [["100","ryan","music","2"],["200","apeach","math","2"],["300","tube","computer","3"],["400","con","computer","4"],["500","muzi","music","3"],["600","apeach","music","2"]] 2 programmers.co.kr 풀이과정 처음에 보고 해결방법으로 든 생각이 속성의 조합으로 먼저 나열하고 그 조합마다 빼내와서 비교하면 될것 같아보였어요 [학번, 이름]과 [이름, 학번]은 같은 값에 해당하구요 [학번], [이름], [전공], [학년] -> 4 [학번,이름], [학번,..

[Swift Algorithm] 프로그래머스 17680 캐시 (2018 카카오 블라인드)

programmers.co.kr/learn/courses/30/lessons/17680 코딩테스트 연습 - [1차] 캐시 3 [Jeju, Pangyo, Seoul, NewYork, LA, Jeju, Pangyo, Seoul, NewYork, LA] 50 3 [Jeju, Pangyo, Seoul, Jeju, Pangyo, Seoul, Jeju, Pangyo, Seoul] 21 2 [Jeju, Pangyo, Seoul, NewYork, LA, SanFrancisco, Seoul, Rome, Paris, Jeju, NewYork, Rome] 60 5 [Jeju, Pangyo, S programmers.co.kr 먼저 대소문자를 구분하지않는다에서 문자열을 모두 lowercase로 변형했구요 LRU(Least R..

[Swift Algorithm] 알고리즘 정리 시작!

github.com/namsoo5/BaekJoon namsoo5/BaekJoon 매일 한문제씩 일주일에 최소3개풀기‼️ 눈뜨면 풀고 눈감기전에 풀기 ‼️. Contribute to namsoo5/BaekJoon development by creating an account on GitHub. github.com Swift풀이를 공유하며 한번 더 정리해보려고 합니다!! 물론 저도아직 잘 하지못해서 좋은 풀이가 아닐 수 도있어요 ㅎㅎ.. 알고리즘을 리드미로 정리하는 것보다 블로그로 정리하는게 더 깔끔해 보일 것 같네요 :)

[RxSwift] Observable? Driver? Relay? 알아보기

Rx를 사용하다보면 타입이 다양한데 기능이 비슷하기때문에 헷갈리기때문에 확실히 알고 사용할 필요가있어요 다른 게시글에서 Observable, Subject, Relay는 다뤘으니 간단하게만 말씀드리고 넘어갈게요! 2020/06/27 - [iyOmSd/Title: RxSwift] - [RxSwift] Observable, Subject, Relay [RxSwift] Observable, Subject, Relay Subject란 Observable에 값을 추가하고 방출할 수 있도록해주는 기능이에요 즉, Observable(방출자)이자 Observer(구독자)의 역할을 모두할 수 있다고 생각하면되요 Cold Observable을 Hot하게 만들어 줄 수 있다 nsios.tistory.com Observabl..