Programmers의 코딩테스트 기초다지기 문제입니다. iOS 앱 개발과는 조금 다른 내용이라 기초부터 해보는게 좋지 않을까란 생각으로 시작해 봤는데 첨부터 막히는게 나올줄이야.. 어쩃든.. 해결해 봅니다! 저는 개발자니까..! 1. 문자열을 각 자리마다 나눠서 대소문자 체크를 한다. 2. 특정메소드가 있는지 검색 3. forEach를 통해서 해보기 먼저 Swift의 대소문자 바꾸는 메소드는 당연히 있다! 사용 방법은 간단해서 굳이 설명하지 않겠다. 나는 String 문자열을 한번에 대->소 , 소-> 대 로 바꿔주는 메소드가 있을까? 하고 찾아봤지만 그런 메소드는 존재하지 않았다. 그래서 결국 반복문을 통해서 직접 하나하나 바꿔주는게 맞다는 판단을 했다. let input = readLine()! v..
[##_revenue_list_upper##]
swift
[##_revenue_list_lower##]강의를 듣던 도중 UITextFieldDelegate 에 대해서 정리할 일이 생겼다. 사실 나는 노션으로 자잘한 것까지 다 기록해두지만 다른 사람이 볼 수 있는 블로그에는 조금 더 제대로 공부한 내용을 남기고 싶어서 아껴둔 것들이 많았는데 이 내용은 비교적 기초적인 내용으로 간단하게 집고 넘어가면 좋을 것 같아서 글을 썼다. 시작해보자. 먼저 UIKit에서 많은 오브젝트들이 Delegate 패턴을 사용해서 해당 클래스에 대한 동작을 구현하고 있다. 대표적으로 UITextField나 UITableView 같은 오브젝트들이다. Delegate?Delegate는 '대리자'라는 뜻이다. 즉 무언가를 대신하는 놈 이라는 뜻이다. 그렇다면 뭘 대신할까? UITextFieldDelegate, UITableViewDe..
기존에 Flutter로 만들었던 회사 프로젝트를 iOS에서 구현해 보려고 WebView를 사용하던 중 "This method should not be called on the main thread as it may lead to UI unresponsiveness." 이런 에러를 조우했다.. 일단 메세지를 잘 들여다보면 '어떤 메소드가 메인스레드가 아닌 곳에서 호출되었다 또는 메인스레드에서 호출되었어야 하는데 그렇지 못하였다' 류의 문제 같은데 검색을 하다보니 내 생각이 맞았다는 것을 알 수 있었다.. Apple Developer Forum에 있는 답변 및 검색 결과로 내가 직접 시도해 본 방법들인데, 1. Xcode에서 Thread Sanitizer 를 체크하고 build 해본다. 2. Dispatch..
회사 프로젝트 분석을 하던도중 lazy 로 선언된 변수를 사용한 것을 보았다. 솔직히 그 당시에 필요한 부분이 아니라서 넘어갔는데, 알고보니 compile 할때 상당히 중요한 부분이어서 기록했었던 것을 공유한다. 정의 A lazy stored property is a propery whose initial value is not calculated until the first time it s used => 처음 사용되기 전까지는 연산이 되지 않는 변수 즉, 미리 이 변수에 대한 내용을 설정해두고, 이 변수를 사용하기 전까지는 설정한 내용들에 대해서 연산이 되지 않는 다는 것. 좀 난해하지만 실제적인 예를 들어보자. 예를 들어서 인스타그램 어플에 있는 스토리보기 같은 기능들을 살펴보면 처음 앱을 이니셜 ..