본문 바로가기

iOS

(65)
[Test] xcode 14.3에서 code coverage 설정하는 방법 안녕하세요. 오늘은 xcode에서 code coverage를 볼 수 있는 방법에 대해 알려드리려고 합니다.. 우선 제 xcode버전은 14.3입니다. code coverage를 보기 위해서는 아래와 같은 과정을 거쳐야 합니다. 1. Edit Scheme... 클릭 2. Code Coverage 체크박스 클릭! 그런데 제 경우 (xcode 14.3) 읏.. 어디에도 찾아볼 수가 없었습니다.. 그러던 와중.. 스택 오버플로우에서 저와 같은 상황을 겪은 글을 다행히 찾게 되서 해결하게 되었습니다. 1. 여기서 초록색 클릭 후 Edit Test Plan 클릭!! 그 후 메뉴에 있는 Configurations 탭을 클릭하게 되면 Code coverage가 있습니다 :) 저는 추가적으로 .xctestplan을 새..
[iOS] 보이지 않는, 사용되지 않는 subview를 superview로부터 제거하는 방법 | Strong reference 오늘은 또 네트워크 TCP 통신관련 프로젝트를 만들다가 신기한 경험을 했습니다... 사용하지 않는 뷰의 메모리 할당해제 관련 주제입니다. side menu는 잠깐 들어가는 것이고 메인 뷰와 사이드 뷰 둘 다 뷰로 구현했습니다. 그래서 일반적으로 sideView를 보여줘야할 경우에만 인스턴스를 할당하고 hide될 때 해제를 했습니다. sideMenu는 옵셔널로 할당했습니다. 그리고 showSideMenu라는 함수를 실행할 때마다 인스턴스 할당을 했습니다. 저 setLayout함수안에서 view.addSubview(self)를 진행합니다. hideSideMenu에서는 화면 전환 애니메이션 로직을 모두 실행한 이후에 sideMenu = nil처리를 해서 MessageListViewController 내부에 인..
[iOS] UITextField 입력시 자동으로 키보드 띄우기, 키보드 위에 버튼 올리기 +_+ | InputAccessoryView 안녕하세요. 지난번 포스트와 같은 키워드인 이번 포스트는 UITextField를 터치할 때, 키보드 올라오도록 하는 방법과 이때 키보드의 실시간 위치를 파악하지 않고도 키보드 위에 버튼을 쉽게 올릴 수 있는 InputAccessoryView. 지정된 텍스트 필드 이외의 영역을 터치할 때 텍스트 필드 이외의 영역이라면 키보드를 내려가게 하는 (resignFirstResponder() ) 방법에 소개하려고 합니다. 1. InputAccessoryView in UITextField 텍스트 필드가 first responder가 될 경우 시스템 키보드가 자동으로 올라옵니다. (예전에 새로 알게 된 개념2 주제로 정리했었는데. 까먹었다는게 사실..ㅠ) 간단 요약하자면, input view는 사용자가 UITextFi..
[iOS] UITextField placeholder 색 변경하는 방법 안녕하세요. 이번 포스트는 텍스트 필드를 커스텀 중에 placeholder 색을 변경하는 방법을 소개하려고 합니다. "그룹 이름을 검색하세요." 이 부분이 텍스트 필드인데 오랜지로 깔 맞춤하면 좋을 것 같아서 UITextField의 속성을 찾아봤는데 String타입의 placeholder의 color 변경하는 속성은 없었습니다. 이럴 땐 attributedPlaceholder 속성을 사용하면 됩니다. 얘도 마찬가지로 텍스트필드에 text가 없을 때 attributed로 styled된 string이 텍스트 필드에 보여집니다. (= placeholder) 이를 사용하면 시스템에서 정의된 placeholder 색이 아닌 내가 원하는 방식으로 지정할 수 있습니다. (NSMutableAttributedString..
[iOS] PrepareForReuse() 의 중요성 | UICollectionView 안녕하세요. 오늘은 앱 개발 하다가 다시 한번 prepareForReuse()의 중요성을 깨닫고 개념과 제가 마주한 에러를 해결한 경험을 소개하려고 합니다. (23.07.23)재사용 큐 탐구 포스트 링크 1. prepareForReuse()란? 컬랙션 뷰를 사용할 때, 새로운 cell을 보여줄 때마다 특정 데이터를 바탕으로 cell 인스턴스를 만드는 것은 메모리 사용량이 많아집니다. guard let cell = collectionView.dequeueReusableCell( withReuseIdentifier: MyCell.id, for: indexPath) as? MyCell else { return .init() } 그러기에 컬랙션 뷰를 만들 때 재사용하고 싶은 cell을 등록하고 cellForRo..
[iOS] UITextField 비밀번호 입력시 문자 가리는 방법 | Strong Password 경고 안녕하세요. 앱을 개발중인데 SignUp page에서 텍스트필드에 암호를 입력할 때 가리는 방법에 대해서 작성하려고 하빈다. 그리고 마주한 Strong Password에 대한 제 해결 방법을 소개하려고 합니다. 제 xCode 버전은 14.3이고 iOS minimum target 13입니다. UIKit에서 키보드 입력은 보통 UITextField로 쉽게 받을 수 있는데요. (한글 영어 할 것 없이 쉽게 받아져서 좋은것 같아요.. readLine()은 한글 입력받으면 이상하게 받아지던데..) let textField = UITextField() textField.isSecureTextEntry = true textField.textContentType = .password UITextField로 비밀번호를 ..
[xCode 14.3] 프로젝트 내 Info.plist 파일 위치 마음대로 변경하는 방법 안녕하세요. 이번 포스트는 Info.pList 디렉터리 위치를 이전했을 때 설정하는 방법에 대해 소개하려고 합니다. 1. Info.plist 위치 변경시 build.phase에서 수정해야 할 것 프로젝트 안에 Support 파일을 만들어서 추가한 경우 요 파일 경로를 보시면 이렇게 변경되어 있습니다. xcodeproj의 target -> BuildSettings에 들어가서 이 경로를 보면 위에있는 경로와 다르게 /Support/가 없습니다. 추가 해주면 됩니다. 프로젝트 루트 파일을 Source로 변경했을 때 Info.plist 위치 또한 변경됩니다. 이 또한 xcodeproj -> target -> BuildSettings에서 변경하면 됩니다.
[xCode 14.3] 어쩌다보니 익숙해져버린 CodeBase 초기 세팅 | Without Storyboard 안녕하세요. 이번 포스트는 코드베이스로 개발을 자주하는데 직접 프로젝트 초기 세팅을 코드베이스로 해야만 했을 때, 여러 블로그들의 글과 다르게 버전이 업데이트 되버린 제 xcode의 xcodeproj에서 해매면서 찾아낸 codebase 세팅 방법에 대해서 소개하려고 합니다. 현재 제 xCode 환경은 14.3입니다. 초기 프로젝트 만들었을 때, 스토리보드 파일만 삭제했을 경우 앱의 메인 thread인 Thread 1에서 Main.storyboard 타입의 소스파일을 찾을 수 없다는 에러가 발생됩니다. Info.plist 파일에 설정된 storyboard name이 Main인 스토리보드 파일을 로드하기 때문입니다. 요고 행 과감히 삭제하고 프로젝트 타겟에서 Build Settings 에 들어갑니다. 요고도..