ios 223

[프로그래머스] 기사단원의 무기 (Swift)

https://school.programmers.co.kr/learn/courses/30/lessons/136798 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr try) 1. 1부터 number를 돌면서 약수를 구하려했다. 2-1)약수를 구할때 1부터 number까지의 수를 돌면서 나누어 떨어지면 약수이니 count를 늘리는 방식으로 했다. -> 불필요한 반복을 진행해 실행 초과가 났다. 2-2)약수는 보통 쌍을 이루니 number의 중간 수까지 나누어 떨어지는 수를 구한다음 쌍에 맞게 추가하는 방식으로 했다. -> number가 10일 경우 10 / ..

[프로그래머스] 연속된 부분 수열의 합 (Swift)

https://school.programmers.co.kr/learn/courses/30/lessons/178870 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 나만의 풀이 방법) - 왼쪽 인덱스 left 와 오른쪽 인덱스 right 지점을 정한다. - left부터 right 구간에 속한 값들을 모두 더한 것이 sum이다. - 만약 sum이 k보다 작다면 right 값을 1증가시키고 sequence[right] 를 sum에 더해준다. 이유: 구간의 합이 k보다 적기 때문에 다음 인덱스값을 더함 *이때 right값이 sequence배열의 갯수 보다 크면 ..

[프로그래머스] N개의 최소공배수 (Swift)

https://school.programmers.co.kr/learn/courses/30/lessons/12953 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이) 나눗셈을 이용하여 최소공배수를 구했다. 1을 제외한 수중에서 두가지 이상의 숫자가 나눠지면 계속 나누면 된다. 예제로 12,32,45,67,72 의 최소공배수를 구할때 다음과 같이 구할 수 있다. 2 | 12 32 45 67 72 3 | 6 16 45 67 36 2 | 2 16 15 67 12 3 | 1 8 15 67 6 2 | 1 8 5 67 2 ------------------ 1 4 ..

[iOS] CompletionHandler (비동기처리)

직역 The completion handler to execute after the activity view controller is dismissed. 액태비티 뷰 컨트롤러가 해제된 후 실행할 완료 핸들러 - 비동기(작업이 순차적으로 실행되지 않고 별도의 스레드나 큐에서 실행되는) 작업이 완료되었을때 실행되는 클로저 - 대표적으로 네트워크 요청의 응답 처리, 파일 다운로드 및 데이터 처리 등이 있다. - 이 프로퍼티는 UIActivityViewControllerCompletionHandler 타입의 클로저를 저장한다. - 클로저는 nullable로 설정되어 있어 값을 가질 수도있고, nil일 수도 있다. - nonatomic: 멀티 스레드 환경에서 해당 프로퍼티에 동시에 접근하지 않는다. - copy:..

iOS랑 친해지기 2023.08.31

[iOS] Then 라이브러리

https://github.com/devxoul/Then GitHub - devxoul/Then: ✨ Super sweet syntactic sugar for Swift initializers ✨ Super sweet syntactic sugar for Swift initializers - GitHub - devxoul/Then: ✨ Super sweet syntactic sugar for Swift initializers github.com 사용 이유 - Swift 초기화를 할때 간편하고 깔끔하게 코드를 만들어 준다 특징 - NSObject 하위 클래스는 모두 사용가능하다 - Then의 경우 Protocol로 구현되어 있다. Then 사용 전 객체 생성코드 let titleLabel: UILabel =..

[iOS] 백그라운드일때 이벤트 발생 (NotificationCenter)

- 등록된 옵저버에게 동시에 정보를 브로드 캐스트 할 수 있는 클래스 - NotificationCenter에 등록된 이벤트가 발생하면 이벤트에 대한 행동을 취함 - 백그라운드, 비동기 작업의 결과 등 현재 작업의 흐름과 다른 흐름의 작업으로부터 이벤트를 받을떄 사용함 옵저버 추가 addObserver(observer:selector:name:object:) - observer: 옵저버가 될 객체 - selector: 이벤트가 발생했을때 호출될 메서드 - name: 등록하려는 이벤트 이름 (NSNotification.Name 타입) - objcet: 발송자가 옵저버에게 보내려고 하는 객체 - NSNotification.Name: 이벤트의 이름을 나타내는 타입. 주로 문자열 상수로 사용되며, 이벤트 식별에 ..

iOS랑 친해지기 2023.08.15

[iOS] Frame 과 Bounds (feat.CGPoint, CGSize, CGRect)

UI위치를 구성하다 갑자기 헷갈려서 복습겸 frame과 bounds에 대하여 정리해보았다. Frame bounds는 둘다 CGRect형이다. CGRect는 origin(x,y좌표) 와 size(width,height)로 구성되어 있다. x,y좌표인 CGPoint 형태, size 크기는 width,height값을 구하는 CGSize형태 CGPoint - 2차원 좌표계에서 점을 구하는 구조체 CGSize - 너비 및 높이 값을 구하는 구조체 CGRect 사각형의 위치와 크기를 포함하는 구조체 Frame과 Bounds는 UIView의 instance property이고 CGRect형이라 x,y,width,height을 가짐 frame 한단계 상위 뷰에서의 위치에서의 사각형 bounds 자신만의 좌표시스템에서의..

iOS랑 친해지기 2023.08.03

[iOS] GCD와 동기,비동기 처리

Words API를 이용해 랜덤하게 단어들을 불러와 그 중 한가지 단어를 다시 Naver 번역,이미지 API를 이용해 단어의 정의와 사진을 보여주는 앱을 설계하려고 했다. 하지만 번역과 이미지 데이터를 파싱해 0번째 인덱스 있는 데이터를 UI에 보여주도록 하였지만 out of range에러가 생성되었다. 이유는 Label과 Image만 mainQueue에서 비동기로 처리하였기 떄문이다. 단어,번역,이미지 데이터를 파싱을 하는 과정에서 배열에 데이터가 담겨져 있지 않은데 Label과 Image의 값을 0번째 인덱스에서 가져오려 했기 때문이다. 그래서 방법을 찾아보다가 GCD에 대하여 찾아 볼 수 있었다. 먼저 GCD를 알기 전에 프로그램,프로세스,쓰레드의 개념을 알아야 했다. 프로그램 - 작업을 실행할 수..

iOS랑 친해지기 2023.08.02

[iOS] JSON 배열의 인덱스마다 구조가 다른 데이터 파싱 (옵셔널)

Word of the day API에서 랜덤한 문자를 받고 싶었다. https://rapidapi.com/jayantur13/api/word-of-the-day2 Word of the day API Documentation (jayantur13) | RapidAPI rapidapi.com Postman으로 Get 형식으로 데이터를 받아왔을 경우 JSON형태가 다음과 같았다. [ ] 문자로 시작해 배열로 확인하였고 첫번째인덱스에만 info라는 이름을 가지는 객체가 있었고, 나머지 인덱스에는 source,date,word,type,mean라는 이름을 가진 객체가 있었다. [ { "info": "Note: This API doesn't gaurantee latest data by date." }, { "sou..

iOS랑 친해지기 2023.08.02