728x90

Swift 38

[Swift] Photos Library 사진 선택, 최초 진행 시 시스템 Alert 표시 중지

안녕하세요! 이번 글에서는 Photos Library 사용 시 처음 권한에서 [사진 선택], [모든 사진], [허용 안 함] 중 사진 선택을 진행하게 되는 경우, 앱을 최초 진행 시 매번 확인 Alert가 출력되는 것을 중단시켜 보도록 하겠습니다. 1. 권한 기기의 앨범에 접근하기 위해서는 Photos Library 를 사용하게 되는데 이때 Permission Alert가 출력되게 됩니다. 여기서 [사진 선택...] 을 선택하면 기기의 사진을 선택할 수 있고 해당 사진만 노출할 수 있게 됩니다. 2. 제어 문제는 매번 앱 실행 시 마다 아래와 같은 Alert 가 출력이 되는데 사용자 입장에서는 매번 누르는 것이 싫다고 느낄 수 있습니다... 때문에 이 Alert 을 한 번 중단시켜 보겠습니다!! 중단시키..

Swift/학습 2022.05.01

[Swift] TableView 또는 CollectionView 의 didSelect 가 정상적으로 작동하지 않을 때 확인 사항

안녕하세요! 이번 글에서는 TableView 또는 CollectionView 를 사용함에 있어 이상하게 didSelect 관련 함수가 정상적으로 작동하지 않을 때 확인해보아야 할 사항에 대하여 간략히 설명드리겠습니다! 0_0 1. Delegate 를 설정해 주었나? didSelect 는 각 컨트롤의 Delegate 프로토콜의 함수이므로 사용하고자 하는 뷰 단에 Delegate 를 설정해 주어야 합니다. 기본적인 것이라도 가끔 실수로 빠뜨리는 경우가 있어 혹시 설정은 했는지 한 번 확인해보는 것이 좋습니다! Delegate 를 설정하지 않은 경우에는 다른 Delegate 함수들도 작동하지 않으며 아무리 눌러도 반응이 없기 때문에 금방 찾을 수 있는 실수입니다. 2. 뷰에 Tap 제스처가 사용되어 있나? 뷰..

Swift/이슈 대응 2022.03.27

[Swift] CaseIterable에 대해 알아보자!

이번 글에서는 CaseIterable에 대해 알아보겠습니다. 간혹 열거형 Enum 을 사용 중 전체적인 케이스를 얻고 싶을 때 사용하면 유용합니다! (0_0) 1. CaseIterable이란? CaseIterable 은 선언한 열거형의 모든 값을 컬렉션을 제공하는 프로토콜입니다. https://developer.apple.com/documentation/swift/caseiterable Apple Developer Documentation developer.apple.com 2. 사용 한 번 예시를 통하여 확인해 보겠습니다! CaseIterable 을 사용하면 컬렉션 형태로 열거형의 값들을 사용할 수 있게 됩니다. 전체적인 케이스 별로 동작을 진행할 경우, 혹은 페이지를 사용할 경우 등 활용하면 좋을 것..

Swift/학습 2022.01.17

[Swift] UIAlertController 안에 CustomView 를 넣어보자!

이번 글에서는 표준 UIAlertController 안에 커스텀 뷰를 넣어보는 작업을 진행해 보겠습니다. 네... 별로 사용할 경우는 없을 것 같습니다. 무리해서 띄우는 것보다 이쁘게 커스텀을 만드는 것이 좋다고 생각합니다. 저 같은 경우는 이전 회사에서 요구해서 살짝 한 번 다뤄봤었는데 오랜만에 기억이 나서 공유드리겠습니다 (0_0) 1. Alert 만들어 보기 간단한 Alert 을 만들어 보겠습니다. let alert = UIAlertController(title: "Test", message: "Message", preferredStyle: .alert) let action = UIAlertAction(title: "Confirm", style: .default) alert.addAction(act..

Swift/학습 2022.01.13

[Swift] Then 을 사용해보자!

이번 글에서는 Then 이라는 라이브러리에 대해 알아보겠습니다. 클로저를 활용하여 간결하게 인스턴스를 선언할 수 있는 기능을 제공합니다 (0_0) 그 외에도 몇 가지 기능이 더 있는 것 같은데 이번 글에서는 기본 적인 기능에 대해 살짝 알아보겠습니다. 1. 프로젝트 도입 Then 라이브러리 같은 경우는 README 를 확인해보면 CocoaPod 과 SPM 을 제공하는 것 같습니다! 이번 글에서는 SPM 을 활용해서 한 번 도입해 보겠습니다. (가장 편하기도 해서...) 2. 코드 작성 기존에 인스턴스 선언 방법과 비교해가며 한 번 알아보겠습니다. 코드는 어렵지 않기 때문에 금방 적용하실 수 있습니다! (^^)/ Then 라이브러리 사용 전 /// 뷰 let makeView: UIView = { let v..

[Swift] UIScrollView 코드로 작성해보기

이번 글에서는 UIScrollView 에 대해 간단히 알아보겠습니다. 단, 코드로만 작성해서 한 번 UIScrollView 를 이해해 보겠습니다. (ㄱ_ㄱ) 1. UIScrollView? 스크롤 뷰는 활용도가 높으나 사용에 있어 까다로운 축에 속한다고 생각합니다. (0_0) 스크롤 뷰를 사용에 있어 아래와 같은 조건을 맞추어 주어야 합니다. 스크롤 뷰 내부에 컨텐츠를 담을 컨텐츠 뷰 필요 컨텐츠 뷰의 사이즈를 명확히 지정 https://developer.apple.com/documentation/uikit/uiscrollview Apple Developer Documentation developer.apple.com 2. 사용할 뷰 선언 저는 컨텐츠 뷰를 스택 뷰로 설정하여 간단하게 작성해 보겠습니다. ..

Swift/학습 2022.01.11

[Swift] @IBInspectable, @IBDesignable 에 대해

이번 글에서는 storyboard, .xib 개발을 진행하면서 디자인을 작업할 때 인터페이스 빌더에서 실시간으로 디자인을 렌더링 할 때 사용하는 @IBInspectable, @IBDesignable 에 대해 알아보겠습니다. 1. @IBInspectable이란? 첫 번째로 @IBInspectable 입니다. IB는 (Interface Builder) 이고 Inspectable은 (Inspector) 탭 부분을 의미합니다. 프로젝트를 생성하면 각 아이템에 대한 속성들의 집합이죠 (0_0) 2. 커스텀 뷰 생성 자 이제 @IBInspectable 를 한 번 사용해 봅시다. 우선 가볍게 프로젝트를 생성하고, 적당히 뷰를 생성하겠습니다. 저는 잘 보이게 중앙에 빨간 뷰를 하나 넣어 주었습니다. 그러고 나서 @IB..

Swift/학습 2022.01.10

[Swift] 연산 시간 측정

이번 글에서는 함수의 연산 시간 측정을 간단히 진행해 보는 법에 대해 알아보겠습니다. 개발을 진행하다가 보면 어디서 시간이 많이 소요되는지 확인하고 최적화를 시키기 위해 수정하고 수정하고 수정해나아가는데 간단하게 얼만큼 시간이 소요가 되는지 체크해볼 수 있는 것이 바로 'CFAbsoluteTimeGetCurrent' 입니다. 1. 사용해보기 CFAbsoluteTimeGetCurrent 의 사용법은 매우매우매우 간단합니다. 측정 시작 부위에 CFAbsoluteTimeGetCurrent 를 생성하고 종료 시점에 시작 지점에서 생성했던 값을 빼주면 간단히 어느정도인치 측정이 됩니다!! (0_0) var checkTime = CFAbsoluteTimeGetCurrent() for index in 0...100 ..

Swift/학습 2021.12.27

[Swift] Realm 복수 쿼리로 데이터 추출하기

개발하면서 Realm 하나의 객체에서 여러가지 조건으로 데이터를 추출하고자 할때 NSPredicate 를 사용하여 길게 길게 작성하면서 해보려고 했는데 너무 비효율적이고 지저분해져서 깔끔하게 할 수 있는 방법이 없나 찾아보다가 좋은 방법이 있어 글을 작성해 기록해 보기로 하였습니다. 1. NSPredicate를 배열로... 우선은 복수의 쿼리를 작성하기 위해 NSPredicate 를 배열로 선언하였습니다. var queryArray: [NSPredicate] = [] 2. 복수의 쿼리 작성 한 객체에서 여러가지 조건으로 데이터를 추출할 쿼리를 만들어 배열에 넣어줍니다 for item in itemList { let predicate = """ 쿼리 작성 조건의 변경이 상황에 따라 필요하다면 조건식을 넣어..

Swift/이슈 대응 2021.12.22

[Swift] discardableResult 에 대해 알아보자!

개발을 하다 보면 여러가지 함수를 만들게 되는데 한 함수에 대해서 상황에 따라 쓰게되면 return 값이 필요한 경우가 있고 또 필요 없느 경우가 있습니다. 그럴때 Swift 에서 주로 사용하는 방법이 변수를 설정하지 않거나 @discardableResult 를 사용해서 해결하곤 합니다. 이번 글은 그 중에 discardableResult에 대해 간단히 알아보고자 합니다. 1. 변수를 설정하지 않고 사용해보기 우선 간단한 함수를 만들어 보겠습니다. 단순히 10과 20을 더하는 함수입니다. let a = 10 let b = 20 func sum() -> Int { return a+b } 여기서 함수만을 반환값을 받지 않고 함수 내부만 실행하고 싶을 경우 아래와 같이 사용하실 수 있습니다. let _ = s..

Swift/학습 2021.12.08
728x90