[Swift] CaseIterable Protocol을 이용해 Enum cases 반복하기
Develop/Swift 2022. 10. 5. 14:12

안녕하세요. 미닛메이드 Minnit 입니다😌 오랜만이네요..ㅎㅎ 여러 코드들을 참고하다가 enum 옆에 CaseIterable 가 많이 눈에 들어오더라구요? 그래서 CaseIterable의 개념과 어느 경우에 사용될 수 있는지를 알아보도록 하겠습니다 ! CaseIterable 란 뭘까요? Apple🍎의 공식 문서를 확인해보면 Protocol로 "모든 값들의 collection을 제공한다" 라고 하네요! Swift에서는 Collection Type으로 3가지를 제공해주고 있는데 바로 Array, Set, Dictionary 가 있죠?? Collection을 제공한다 라는 말은 Collection Type처럼 사용할 수 있게 도와준다 라는 말로 들리네요! 더 자세히 말하면 CaseIterable를 선언 시 ..

[Swift] WWDC22 Complications and widgets: Reloaded
Develop/Swift 2022. 6. 14. 10:45

안녕하세요. 미닛메이드 Minnit 입니다😋 WWDC2022 요약 첫번째로 올린 Push To Talk에 이어서 이번에는 애플에서 드디어 제공하게 된 잠금화면을 커스텀 할 수 있는..!! (물론 안드로이드 폰에 비해 커스텀 제약이 많지만 💧) 고론 API와 소개 영상이 공개되었습니다 이 부분은 정말 많은 사람들이 기다려 왔을 것 같아요 ~ 그럼 이번에도 간단하게 요약해보겠습니다 🕶 Complications and widgets 잠금 화면의 액세서리 위젯 + WatchOS complication을 만들 수 있게 도와주는 새로운 Api가 WidgetKit 에 추가되었습니다 현재 제공되는 Watch의 complication이 위젯 형태로 한눈에 알아볼 수 있는 WidgetKit으로 재탄생하였습니다 코드 한 번..

[Swift] WWDC22 Enhance voice communication with Push to Talk
Develop/Swift 2022. 6. 12. 17:10

안녕하세요. 미닛메이드 Minnit 입니다😋 이번 6월 둘째 주에 열린 애플 세계 개발자 회의 WWDC22 ! iOS16에서 볼 수 있는 새롭고 업그레이드된 기능들 중에 제가 관심 있는 영상을 모아 모아 정리해보았습니다 ~ 이번 영상은 애플워치에서만 제공했던 "워키토키" 기능을 iPhone에서도 서비스할 수 있게 API 제공을 시작한다고 합니다 간단하게 요약해보겠습니다 🤙🏻 PushToTalk Framework 란? iOS의 새로운 오디오 커뮤니케이션 class로, iOS 앱에서 워키토키 통신을 통해 빠른 커뮤니케이션 진행하도록 도와주는 Framework이다. 위에서도 말했지만 한마디로 애플워치 watchOS 5.3 이후 사용할 수 있는 앱 서비스인 "워키토키" 를 앱에서도 구현할 수 있게 Apple에서..

[Swift/코드한줄] Print 문 프로퍼티 - separator, terminator
Develop/Swift 2022. 5. 6. 15:26

코드 한 줄에 대해 기록합니다. 의식의 흐름을 따라갑니다. 코드를 짜면서 제일 많이 사용하는 함수가 무엇일까.. 하면 Print문이라고 생각하는데 그렇기 때문에 Print 함수의 공식 문서를 참고해본 사람은 드문 거 같다 print 함수 == 출력 함수로 누구나 알고 있으니! Apple Developer Documentation developer.apple.com print(”Hello World”) 로 주로 사용하기 때문에 우리는 func print(_ item: Any) 의 형태라고 생각하겠지만.. 사실 print문의 정의는 func print(_ items: Any..., separator: String = " ", terminator: String = "\n") 로 separator과 termin..

[Swift/코드한줄] Timer.invalidate()
Develop/Swift 2022. 4. 8. 14:01

코드 한 줄에 대해 기록합니다. 의식의 흐름을 따라갑니다. Timer에서 invalidate() 함수의 정의를 보면 타이머를 중지하고 loop에서 제거해주는 역할을 하는 함수 이라고 작성되어있다 지정된 타이머를 제거하는 유일한 방법이라고 한다 (참고로 timer = nil 한다고 이미 시작된 타이머가 초기화되진 않는다...^^ 하하) 근데 invalidate() 함수를 작성했는데도 타이머가 계속 진행되는 문제가 발생해서 왜일지 알아보았다 만약 timer.invalidate()를 실행했는데도 불구하고 타이머가 계속 실행이 된다면 두 가지 중 이유가 있을 텐데 1. 타이머가 중복돼서 실행된 경우 만약 타이머를 설정하는 코드가 2번 실행됐다면 timer.invalidate() 한다고 해서 2번이 모두 취소가 ..

[Xcode] Xcode Error: abort trap 6
Develop/iOS 2022. 3. 8. 15:51

갑자기 개발 잘하다가 Xcode에서 처음 보는 에러가 발생하였다 코드에는 빨간줄 하나도 없는 상태에서 Abort Trap: 6 라니.. StackOverFlow에서 해답을 찾을 수 있었다 guard let 구문을 사용할 때 let exampleText: String? guard let exampleText = exampleText else { return } 위의 코드처럼 양쪽의 변수 이름을 같게 설정해 둔 것이 있었는데 이것을 다르게 수정해주니 에러가 해결되었다.. ^^ 이런 식으로 코드 짠 적 많은데 처음 마주친 에러였다 모두 guard let 변수명 수정해보세요~.. @미닛메이드 참고 Command failed due to signal: Abort trap: 6 Since Xcode 7 and Sw..

[Python/프로그래머스/Level2/KAKAO] k진수에서 소수 개수 구하기
Develop/Algorithm 2022. 3. 6. 14:44

문제 양의 정수 n이 주어집니다. 이 숫자를 k진수로 바꿨을 때, 변환된 수 안에 아래 조건에 맞는 소수(Prime number)가 몇 개인지 알아보려 합니다. 0P0처럼 소수 양쪽에 0이 있는 경우 P0처럼 소수 오른쪽에만 0이 있고 왼쪽에는 아무것도 없는 경우 0P처럼 소수 왼쪽에만 0이 있고 오른쪽에는 아무것도 없는 경우 P처럼 소수 양쪽에 아무것도 없는 경우 단, P는 각 자릿수에 0을 포함하지 않는 소수입니다. 예를 들어, 101은 P가 될 수 없습니다. 예를 들어, 437674을 3진수로 바꾸면 211020101011입니다. 여기서 찾을 수 있는 조건에 맞는 소수는 왼쪽부터 순서대로 211, 2, 11이 있으며, 총 3개입니다. (211, 2, 11을 k진법으로 보았을 때가 아닌, 10진법으로..

[Python/프로그래머스/Level1/KAKAO] 신고 결과 받기
Develop/Algorithm 2022. 3. 4. 17:21

문제 신입사원 무지는 게시판 불량 이용자를 신고하고 처리 결과를 메일로 발송하는 시스템을 개발하려 합니다. 무지가 개발하려는 시스템은 다음과 같습니다. 각 유저는 한 번에 한 명의 유저를 신고할 수 있습니다. 신고 횟수에 제한은 없습니다. 서로 다른 유저를 계속해서 신고할 수 있습니다. 한 유저를 여러 번 신고할 수도 있지만, 동일한 유저에 대한 신고 횟수는 1회로 처리됩니다. k번 이상 신고된 유저는 게시판 이용이 정지되며, 해당 유저를 신고한 모든 유저에게 정지 사실을 메일로 발송합니다. 유저가 신고한 모든 내용을 취합하여 마지막에 한꺼번에 게시판 이용 정지를 시키면서 정지 메일을 발송합니다. 이용자의 ID가 담긴 문자열 배열 id_list, 각 이용자가 신고한 이용자의 ID 정보가 담긴 문자열 배열..

[Swift/코드한줄] translatesAutoresizingMaskIntoConstraints = false
Develop/Swift 2022. 1. 16. 16:48

하루에 코드 한 줄에 대해 기록합니다. 의식의 흐름을 따라갑니다. 우리가 코드를 이용해 layout을 잡기 전 꼭 해주는 일이 있다 바로 button.translatesAutoresizingMaskIntoConstraints = false 처럼 translatesAutoresizingMaskIntoConstraints 를 false로 설정해주는 일이다 이 코드를 설정하지 않으면 위치가 원하는 데로 잡히지 않는다 왜일지 궁금해졌다 먼저 translatesAutoresizingMaskIntoConstraints 은 UIView Class 에서 Subviews의 Layout 관련 Property로 분류가 되어있는 것을 볼 수 있다 그리고 공식 문서의 정의를 확인해보면 View의 AutoresizingMask가..