적당한 고통은 희열이다

- 댄 브라운 '다빈치 코드' 중에서

반응형

Swift iOS 앱 개발/Swift 85

[Swift iOS] UITextField 입력 글자 수 제한 및 백스페이스 감지

UITextField를 이용하여 사용자 입력을 받아올 때, 글자수 입력을 제한하는 법을 알아보자. 글자수 입력 제한하기 애플 문서를 찾아보면 textField(_:shouldChangeCharactersIn:replacementString:) : Asks the delegate whether to change the specified text. func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool textField의 텍스트와 새로 입력받은 string을 합쳐서 길이를 제한하는 메서드로, 결과값으로 Bool을 리턴하여 텍스트를 바꿀지 말지 ..

Swift 4 -> Swift 5 Migration + Swift 버전 확인하는 법?

코코아팟으로 프레임워크를 설치했더니 문제가 있었다. Github 이슈 들어가보니 Swift 5로 넘어오면서 더이상 발생하지 않는 문제라는데 대체왜??? 설마설마하며 Swift 버전을 확인해보았다. Swift 버전 확인하는 법 ? Targets - build settings - Swift Compiler Language - Swift Language Version 들어가서 확인해보니 Swift 4로 설정되어 있던 것... 아니 이건 좀 심한 거 아니오. 2019년 3월에 Swift 5가 릴리즈 되었거늘, 2021년에 새로 프로젝트를 진행하면 버전 좀 바꿔서 해주지.. 그래서 버전을 5로 높였더니 에러 100개가 떴다.. ㅎㅎ 그치만 다 fix로 간단하게 고쳐줄 수 있어서 어렵진 않았지만 클릭을 200번 해..

[Swift iOS] url 이용하여 image 받아오기

1. UIImageView에 extension으로 메서드 추가하는 방법 url로 이미지 불러오는 일이 이렇게 복잡한 지 처음 알았다... 그냥 대충 setImage에 url 인자 넣으면 되는 줄 알았더니 생각보다 아주 까다롭구만.. 다음과 같이 UIImageView에 extension으로 url로 이미지 로드하는 메서드를 만들어준다. 이미지를 다운로드받아 불러올 때, 이미지가 클 경우 시간이 오래 걸릴 수 있기에 끊김이 없도록 DispatchQueue를 사용해 멀티쓰레드로 처리를 해준다. extension UIImageView { func load(url: URL) { DispatchQueue.global().async { [weak self] in if let data = try? Data(conten..

[Swift iOS] swift codable null handling

문제!!! 이미지 값이 null 로 들어오면 Model에 맞게 Json 디코딩을 할수가 없다. image 값은 String으로 설정이 되어 있기 때문에. swift에서 null은 인식 못함. ㅠㅠㅠㅠ 내가 바보다. Codable로 받아올 때 데이터 타입을 옵셔널로 설정해주면 String이라도 null 을 받아와 자동으로 nil 값으로 처리가 된다… swift null 처리로 검색을 해봐도 딱히 없길래 안된다고 공백으로 바꿔달라고 서버에 요청했었는데 괜히 바쁜 시간 뺏은 거같아 죄송합니다.. ㅎㅎ

[Swift iOS] 검색기능구현 - 문자열 탐색 NSString.CompareOptions

Foundation > NSString 문서를 살펴보면 다음과 같은 문자열 비교/탐색 옵션들이 있다. 이들을 활용하면 문자열을 더욱 간편하게 판별하고 사용할 수 있다. import CoreFoundation extension NSString { public struct CompareOptions : OptionSet { public static var caseInsensitive: NSString.CompareOptions { get } public static var literal: NSString.CompareOptions { get } public static var backwards: NSString.CompareOptions { get } public static var anchored: NSS..

[Swift iOS] LaunchScreen duration 이미지 및 노출 시간 설정

info.plist Launch screen interface file base name 키 추가 Value에 LaunchScreen 입력. 우리가 흔히 쓰는 application(_:didFinishLaunchingWithOptions:) 메서드가 바로 launch screen과 함께 앱이 로딩될 때 실행되는 구문으로, 앱이 시작되는 순간 필요한 initialization code 들을 이 메서드 안에 작성할 수 있다. Launch Screen 디스플레이 시간 조정 Thread.sleep(forTimeInterval: 3.0) func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIAppl..

[Swift iOS] How to detect app entering foreground / background

앱이 백그라운드에서 실행되고 있는지를 체크하여 다시 활성화 되었을 때만 실행하고 싶은 코드가 있어 이를 체크해주는 메서드를 찾아보았다. 다음 메서드들이 바로 AppDelegate에서 제공되는 앱의 실행 상태를 감지해주는 메서드들이다. func applicationDidEnterBackground(_ application: UIApplication) { print("applicationDidEnterBackground") // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to ..

728x90
반응형