안녕하세요! 민군입니다. 오늘 좋은 팁을 하나 알아서 바로 포스팅을 써보게 되었습니다. iOS개발을 하다보면 NotificationCenter를 통해 노티를 사용할 수 있습니다. 특정이벤트를 감지해서 알려주는 옵저버기능인데요. 특정이벤트에 대한 다수의 뷰컨트롤러의 조작이 필요할때 유용한 것으로 알고 있습니다. 그 외로도 1대1 이벤트 대응방법으로는 Protocol을 통한 델리게이트 메서드를 사용할 수도 있지요. 그런데 만약 "1대1용도로 사용을 하려한 하나의 노티피케이션 옵저버를 다수의 뷰컨트롤러에서 각각 등록한다면?" 이전 뷰 컨트롤러, AViewController에서 등록한 옵저버를 없애주지 않으면 B에서 같은 노티 옵저버를 등록시, AController와 BController 전부 노티피케이션에 대..
iOS앱 실행 뒤 사용자가 사진첩권한을 거부한다면 어떻게 처리하는게 좋을까? 안녕하세요! 민군입니다 ^-^// 오늘은 쌈박한 포스팅 주제가 될 것 같아요. 입문자분들이 사진권한이 필요한 앱을 만들다보면 거치게 되는 고민이 있습니다. '만약 사용자가 사진첩 접근 권한을 거부하면 어떻게 하지??' 전 보통 두가지 방법을 생각할 것 같아요. 1. 초기 권한흭득을 거부하면, 앱을종료해버리기 2. 사용자의 권한 설정을 유도하기 이렇게 두가지가 될 수 있겠는데요. 저는 오늘 이중 2번째 방법, 사용자의 권한 설정을 유도하기를 구현해보도록 하겠습니다. iOS앱 권한설정은 사진첩권한을 기준으로 구현해보겠습니다. iOS앱 권한흭득을 유도하기 구현과정 제가 초짜라 잘 모르는건지 모르겠는데, 초기 앱 실행시에는 권한요청 문..
안녕하세요! 요즘 주말에 좋은 스터디팀원분과 함께 Firebase 강좌를 들으며 예제 앱을 만들어 보고 있는데요. 문득 포스팅하면 좋을 것 같은 주제가 떠올라서 포스팅을 하게 되었습니다. 그것은 바로! TextView의 여백 줄이기입니다. 이게 무엇이냐! 보통 UILabel같은 한줄짜리 인터페이스 요소는 객체 내 공백이 없습니다. 하지만 TextView는 별도의 여백이 있기때문에 같은 X좌표에 텍스트뷰와 텍스트라벨을 놓으면 텍스트 내용의 시작 위치가 다르답니다. 한번 실제 앱 화면을 통해 그 예시를 확인해보겠습니다. 위를 보시면 TableView Cell에 JonnyB와 Lorem ipsum dolor sit er elit lamet, 이라는 괴상한 문구가 있는데요. Lorem ipsum dolor si..
안녕하세요! 민군입니다 ^-^// 최근에 부스트코스를 수료하게 되면서 신경쓰지 못했던 알고리즘 기초 공부를 하고 있습니다. 수학연산, 부르트포스와 순열쪽을 최근 들었는데 재밌으면서도 많은 산들을 보며 분발하고 있습니다. Swift + 알고리즘 고수가 되어 질좋은 개발자가 되고싶군요. ㅎㅎ 자 거두절미하고, 오늘은 부스트코스 5번째 과제에서 지적받았던 부분에 대해서 해결방법을 공유하고자 합니다. 이부분은 제가 부스트코스 3번째 과제를 하면서도 한번 지적받은 적이 있었는데요. 또다시 작은 주제로 지적을 받으니 부끄럽기도 하면서, "이부분 정말 중요하다!" 싶어 포스팅을 하게 되었어요. 그것은 바로! Enum Switch문 혼용으로 default분지를 제거하고 깔끔하게 코딩을 짜내는 방법입니다. 초보자분들은 ..
- Total
- Today
- Yesterday
- swift string
- 자연어처리
- CoreML
- 김프매매
- 개발자문서
- 컬렉션
- 백준swift
- 스위프트
- swift언어
- 부스트코스
- swift 문자열
- swift알고리즘
- swift 기초
- swift reduce
- Collection
- swift문제
- 알고리즘문제
- 백준알고리즘
- SwiftUI
- Swift 알고리즘
- 프로토콜
- ios
- 알고리즘
- 프로그래머스
- publisher
- swift
- uikit
- 프로그래머스swift
- Protocol
- createML
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |