본문 바로가기

Swift/Error & Issue

(8)
[iOS/UIKit] UIStackView에 containerView를 추가했는데 containerView의 subview만 보여지는 경우 | AutoLayout 안녕하세요. 오늘은 스택뷰에 뷰들을 넣어서 side menu를 쉽게 구현하려고 개발을 하던 도중에 stackView안에 있는 4개의 container view는 사라지고 container의 subviews만 stackview에 추가됬던 이슈와 해결했던 경험을 글로 기록하려고 합니다. stackview에 추가될 제 컨테이너 뷰들은 Icon과Label을 가지고 있는 뷰 입니다. 그래서 이렇게 4개 선언했고 요기에 addArrangedSubviews로 넣어서 stackView를 구성했습니다. (subviews 레이아웃 지정 안해도 되니 정말 편하다고 느꼈습니다. 문제의 시작은 각각의 containerView(type: IconAndLabelView)에 tap gesture를 선언했을 때 이 stackview의..
[iOS] TableView cell's UIImageView, UIButton object action event 실행 x | ContentView !! Notification 기능 개발을 하고 있었는데 Cell의 subview object들의 action event가 실행되지 않았습니다.. 음..? "Combine을 써서 그런가?" 제 프로필 또한 UIImageView이고 getsture를 등록 했습니다. 원래는 버튼도 터치 이벤트가 먹히지 않았는데,, 계속 고민했고 머리에서 나온 한 가지 해결책이 떠올랐습니다. bringSubviewToFront( ) 이 함수를 이용해 혹시나 덮여서 액션 response가 오지 않을 수도 있겠다고 생각했습니다. 프로필 이미지뷰, 포스트 이미지뷰, 팔로우 버튼 셋 다 bringSubviewToFront()를 통해 앞으로 꺼냈고 버튼은 다행히 반응이 잘 되는데 아직도 이미지들에 부착된 addTarget이 작동하지 않았습니..
[iOS] unrecognized selelctor sent to class 에러 잡기 에러 마주한 상황 여기서 biiou 또는 biiou 옆 프로필 클릭시 상세 프로필로 들어가는 기능을 구현하고 있었어요. 둘 다 같은 함수를 통해서 상세 프로필 화면을 불러오는 액션 메서드를 사용했어요. 근데 버튼일 때는 성공적으로 되지만 프로필을 눌렀을 때는 unrecognized selelctor sent to class 에러가 발생했습니다. 에러가.. 버튼의 경우 addTarget을 통해서 프로필의 경우 UITapGestureRecognizer(target: self, action: #selector(didTapUsername))를 프로필 인스턴스에 부여 했습니다. 같은 함수인데 프로필을 눌렀을 때만 unrecognized selelctor 에러가 떴는데 계속해서 생각하니 오류의 원인을 알게 되었습니..
[iOS] Bridging-header file not working, can't use frameworks (FMDB) FMDB라이브러리 사용하기 전에 마주한 에러사항들 1. error opening input file (파일경로~) 이 에러는 브릿징헤더의 경로를 잘못 추가했을 경우입니다. 프로젝트 TARGET -> Build Settings -> Swift Compiler - General -> Objective-C Bridging Header 경로를 Brindging-Header.h 파일이 있는 경로에 맞게 잘 설정해주어야 한다. 타겟 체크하고 이렇게 브릿징 헤더파일이 xproj파일 안에 생성된 경우 Objective-C Bridging Header 경로를 HRApp/Bridging-Header.h 로 설정해주어야한다. ( .h 꼭 붙여야 합니다.) 그렇다면 경로에러는 없는데.. 이렇게 FMDB.h를 import했음에..
[Swift] pickerView component의 리스트 title이 "?" 형태?! textField를 누르면 picker뷰를 통해 등록된 계정을 보여주려고 pickerView를 사용했다. 계정 오른쪽에 textField에 picker뷰를 inputView로 등록했다. 기본적으로 구성한 코드이다. class viewController : UITableViewController ... { var accountList = [ "A@naver.com", "B@naver.com", "C@gmail.com", "D@gmail.com" ] override func viewDidLoad() { let picker = UIPickerView() picker.delegate = self } //MARK: - PickerViewDelegate //피커뷰 몇개의 컴포넌트로 구성될건가?! func numbe..
[Swift] Fatal error: 'try!' expression unexpectedly raised an error: Error Domain / ATS 설정 꼼꼼한 재은씨 tableView와 REST API를 통한 영화 목록 구현을 복습할 겸 책을 보지 않고 tabieView를 구현하고 있었는데.. 오류가 발생했다. 어늬?! cmd + 클릭 으로 해당 사이트 이동은 잘만 되는데 뭐가 문제인지... 고민을 하다가 Info.plist에서 xml파일에 추가 설정을 해 줘야 한다는 것을 잊고 있었다. 신기하게 정말 에러가 나는구나,, 바로 ATS 설정을 해주었다. 일반 프로토콜 http:// 주소 는 SSL 보안 프로토콜이 적용되지 않은 '일반' 네트워크라고 한다. 따라서 SSL 보안 프로토콜이 적용되어있지 않은 http:// 에 접속하려면 ATS 설정을 추가적으로 해야한다.. (으흑..,,, 모르는게 너무많네 이참에 네트워크 공부까지 바로 해버리기로 다짐한 1인)
[Swift] Cannot find type 'class' in scope 에러 / shift + cmd + k 오늘 열심히 공부하다 중간에 custom 테이블 뷰를 만들기 위해 특정 커밋 상태로 되돌아가서 feature브랜치를 만들고 새로 공부중 이었다. 그런데 이전에 만들었던 클래스가 사라졌다. 분명히 여기 파일안에는 존재하는데,, 구글 검색을 하다 우연히 알게된 shift + cmd + k 라는 단축키를 알게됬다. 내가 작성한 것은 맞지만 , run 상태일 경우 무언가 잘못되었다고 계속 오류 날때 위의 단축키를 쓰면 빌드 폴더를 clean시킨다. 이후에 다시 실행했을때도 오류 생기면 내가 작성한 코드가 오류일 가능성이 높다. 디버깅을 하거나 다른 방법으로 오류를 잡아야한다. BookIb.swift 소스파일에서 인스펙터 옵션을 본 후에 target 설정을 하려했지만 아예 인스펙터 옵션이 뜨지 않았다. 그래서 그..
[Swift] Fatal error : Unexpectedly found nil while unwrapping an Optional value |스위프트 공부중 맞이한 첫 번째 에러. 스위프트 공부를 하던 중 마주하게 된 첫 번째 에러가 발생했다. 우선 중단점을 지정해서 디버깅을 통해 어떤 에러인지 알아 봤다. Thread 1: Fatal error : Unexpectedly found nil while unwrapping an Optional value 이후에 계속 코드 실행F6을 눌렀더니 Thread 1: EXC_BREAKPOINT (code=1, subcode=0x18f494588) 이런 에러로 바뀌었다. (Thread가 왜이렇게 많지.. 선언 다 안해줬는데;;) Thread 1에서 발생한 에러이다. //위의 코드 상황을 말하자면 디폴트 VC(ViewController)를 삭제하고, TableViewController 를 생성, initial View Controller로 지정한..