iyOmSd 202

[Swift] Hugging, Resistance

오토레이아웃 관련 프로퍼티인데요 이렇게 기본적으로 가지고 있는속성이에요 이게 뭘까..? 쓸 때가 있을까..? 네 그럼요 ㅎㅎ 우선 이 두개를 알기전에 intrinsicContentSize 를 알고가야해요 파파고: 뷰 자체의 특성만 고려한 수신 뷰의 자연적 크기. 뷰자체의 순수한 크기에요 frame과 뭐가다른가요? intrinsicContentSize는 get-only 프로퍼티라 수정이안돼고 frame은 수정이가능하죠 frame영역을 수정했다고해서 intrinsicContentSize의 값이 달라지지않아요 서로 의존하고 있지않죠 뷰의 본래 사이즈를 알 수 있어요 예시 [leftLabel][rightLabel] 이렇게 존재하고 각 오토레이아웃은 왼쪽 오른쪽 0 으로 같게, 중앙으로 잡았다면 빨간 표시가 뜰거..

iyOmSd/Title: Swift 2020.11.25

[Swift] Optional 옵셔널

스위프트를 공부하면 ? ! 같은 기호들을 보게되죠 이게 뭐냐면 옵셔널이라는 개념인데요 개념을 공부해보고 한번 비슷하게(?) 구현해보려구요 Enum타입이고 값 또는 nil을 wrap한 표현이레요 옵셔널이란 값이 있거나 없을 수도 있는 Enum형(열거형)타입이에요 let shortForm: Int? = Int("42") let longForm: Optional = Int("42") let number: Int? = Optional.some(42) let noNumber: Int? = Optional.none print(noNumber == nil) // Prints "true" Optional 타입을 짧게 T? 로 줄여서 사용할 수 있어요 또한 옵셔널은 Enum타입에 case로 some, none 이 존재해..

iyOmSd/Title: Swift 2020.11.25

[Data Structure] Bubble, Selection, Insertion Sort (Swift)

아주 기본적인 정렬들을 공부해볼게요 대표적으로 거품정렬(Bubble Sort) 선택정렬(Selection Sort) 삽입정렬(Insertion Sort) 이렇게 3가지가 있구요 각각 특징과 구현을 해볼거에요 거품정렬 정렬과정 인접한 두 원소의 대소를 비교해서 자리를 교환하면서 정렬해요 시간복잡도 O(n^2) func bubbleSort(arr: [Int]) -> [Int] { var arr = arr for i in arr.indices { // i번 시도 for j in 1.. arr[j] { // 스왑 let temp = arr[j] arr[j] = arr[j-1] arr[j-1] = temp } } } return arr } 선택정렬 정렬과정 Index 0부터 차례대로 해당 순서에 원소 넣을 위치를..

[Swift Algorithm] 프로그래머스 68646 풍선 터트리기 (월간 코드 챌린지 시즌1)

programmers.co.kr/learn/courses/30/lessons/68646 코딩테스트 연습 - 풍선 터트리기 [-16,27,65,-2,58,-92,-71,-68,-61,-33] 6 programmers.co.kr 풀이과정 문제 이웃된 값들중 큰값이 삭제 단 한번만 작은값을 삭제할 수 있고 삭제되지않는 풍선의 수를 구해라 현재 비교하려는 값이 삭제되지않는 경우 -> 어찌햇던 마지막에 양옆을 비교했을때 그 양옆의 수보다 작아야함 (셋중에 젤 작아야 남길수 있음) x번째를 남기고싶다면 [0.. n^2 실패... 마지막 현재 확인숫자 기준으로 왼쪽최솟값과 오른쪽 최솟값을 비교해서 그 둘보다 커야함 n^2으론 절대 불가능하니 n으로 해야했고(1,000,000^2 시간초과) 배열을 만들어서 왼쪽부터 비..

[Swift] Notification Center, Notification Queue

Notification Center의 post는 동기적으로 동작하죠 post a post b 를 했다면 a의 옵저버함수가 끝날때까지 b를 실행하지 않아요 옵저버함수가 실행이 오래걸린다면 마냥 기다릴순 없으니..! 비동기적인 API가 있는데요 바로바로 Notification Queue!! 가 있는데 한번 사용해보려구요 ㅎㅎ Notification Center의 버퍼다! 다른건 아니고 NotificationCenter에 들어오는 post를 관리해주는거라고생각해요 이벤트 등록을 할때 Notification Center를 이용해서 옵저버를 등록하거든요 ㅎㅎ 기본적인 사용법은 let center = NotificationCenter.default let queue = NotificationQueue.default..

iyOmSd/Title: Swift 2020.11.20

[Swift] Fastlane 자동화빌드 배포 CI/CD (2/2)

GitHub Action 코드를 작성, 테스트 및 배포하세요. 코드 검토, 지점 관리, 발행 트리징 작업 등을 원하는 방식으로 만드세요 자동화 프로세스를 만들 수 있어요 잘 모르겟으니 우선 제안해주는 swift용 workflow를 만들어볼게요 이렇게 생겻구요 on: 동작 알림받을 조건 (레포지토리에 푸시가되는 브렌치나 풀리퀘가 되는 브렌치기준) jobs: 수행할 동작을 설정해주는거에요 build: 작업이름 runs-on: 환경 steps: 동작수행목록 uses: 이미만들어진 action사용할때(GitAPI) name: 수행목록이름 run: 수행명령어 on의 이벤트 종류는 docs.github.com/en/free-pro-team@latest/actions/reference/events-that-trigg..

iyOmSd/Title: Swift 2020.11.19

[Swift] Fastlane 자동화빌드 배포 CI/CD (1/2)

CI / CD 어디선가 들어본적 있으신가요?? 이게무슨뜻일까요? CI (Continuous Integration) (빌드 테스트를 실시하는 프로세스) 통합 프로세스를 지속적으로 실시해주는거에요 CD (Continuous Deploy 혹은 Continuous Delivery) 프로덕션 환경으로 배포작업을 자동화하는것 앱에 적용한 변경사항이 버그 테스트를 거쳐 레포에 자동으로 업로드되고 언제든 실시간으로 배포가능 변경사항의 배포에 대한 비용 시간 위험을 줄일수 있어요 iOS앱을 배포하는 과정을 따라가보면 이게 왜 필요한지 필요성을 느낄수 있어요 저도 필요성을 너무 느껴서 글을쓰면서 처음으로 적용해보려구요 ㅎㅎ iOS앱 배포과정은 앱을 아카이브를 해요 - 아카이브하는 시간 앱을 앱컨넥트에 업로드하고 - 배포시..

iyOmSd/Title: Swift 2020.11.19

[Swift Algorithm] 프로그래머스 17676 추석 트래픽 (2018 카카오 블라인드)

programmers.co.kr/learn/courses/30/lessons/17676 코딩테스트 연습 - [1차] 추석 트래픽 입력: [ 2016-09-15 20:59:57.421 0.351s, 2016-09-15 20:59:58.233 1.181s, 2016-09-15 20:59:58.299 0.8s, 2016-09-15 20:59:58.688 1.041s, 2016-09-15 20:59:59.591 1.412s, 2016-09-15 21:00:00.464 1.466s, 2016-09-15 21:00:00.741 1.581s, 2016-09-15 21:00:00.748 programmers.co.kr 풀이방법 처음에 문제를 잘못이해해서 잘못풀엇어요... 주어진입력은 완료된 시각이였어요.. 시작시간인줄..

[Swift Algorithm] 프로그래머스 17687 N진수 게임 (2018 카카오 블라인드)

programmers.co.kr/learn/courses/30/lessons/17687 코딩테스트 연습 - [3차] n진수 게임 N진수 게임 튜브가 활동하는 코딩 동아리에서는 전통적으로 해오는 게임이 있다. 이 게임은 여러 사람이 둥글게 앉아서 숫자를 하나씩 차례대로 말하는 게임인데, 규칙은 다음과 같다. 숫자를 0 programmers.co.kr 풀이과정 요약 0부터 차례대로 알맞는 진법에 맞게 변환해서 문자열을 계속 이어가고 이때 변환된 문자열의 길이가 t * m 를 넘어가면 비효율적이기때문에 그 전에 종료 변환한 문자열에 p의 순서에 맞게 접근해서 t개 만큼 출력 처음 접근방법에는 while문으로 돌면서 입력받은 n(진법) 만큼의 나머지를 구해서 진법String을 구하고 계속 더해가는 식으로 저장해..

[Swift] Custom View 만들기

자신만의 뷰를 만드는 방법엔 2가지가 있어요 만들어놓고 가져다 쓰기 좋기 위함이죠! 1. Xib를 이용 2. 오로지 코드로만 작성 Xib이용 Xib이란 Xcode Interface Builder의 약자로 Nib 파일을 XML형식으로 변환한 파일이에요 XML로 이루어져있어서 소스코드를 좀 더 알아보기 편하겠죠 Nib를 사용하다가 추후에 나오게된 형식이죠 Nib이란 NeXTSTEP Interface Builder의 약자로 바이너리 형식의 파일이에요 유저 인터페이스를 저장하고 처리속도가 빨라요 Xib파일을 빌드하면 Nib으로 컴파일되고 그 파일을 배포하는 식이에요 Tableview나 CollectionView의 Cell을 Xib파일로 만드는 예시가 제일 쉬운 예시가 되겠네요 같은이름으로 Xib, Swift파일..

iyOmSd/Title: Swift 2020.11.12