본문 바로가기

분류 전체보기184

Swift 5 beginDisablingInterfaceAutorotation Ignoring 디버깅 -[UIWindow endDisablingInterfaceAutorotationAnimated:] called on without matching -beginDisablingInterfaceAutorotation. Ignoring. 정상적인 상황에서는 호출 되지 않는 메시지 입니다. 에러 메시지는 아니고 그냥 이렇다 ~ 정도의 메시지 인것 같습니다(Ignoring!!!) 콘솔에 찍어 보지도 않았는데 에러를 알리는 것 같은 메시지가 노출된다? 정상적인 동작을 수행한건 아니니까 이유를 찾아보자면 주로 키보드에서 나타나는 에러입니다. 예를 들어 let textField = UITextField() textField.resignFirstResponder() 스크롤 해서 뷰를 닫을 때 팬제스처 끝나는 시점에서 한.. 2021. 7. 12.
SF Symbol 다운로드 받기 xCode 해외 개발 유튜브들 보면 검색 필드에서 sf 로 다양한 아이콘 조회하고 사용하던데 sf 치니까 안나오더라구요 알고 보니 다운로드 받는거!! developer.apple.com/sf-symbols/ Apple Developer There’s never been a better time to develop for Apple platforms. developer.apple.com 위 페이지로 들어가 줍니다 오른편 보면서 스크롤 내리다 보면 중간에 여기서 다운로드 버튼 눌러 줍니다. 더블 클릭 해주세용 그렇답니다. 이제 검색 필드에서 sf 만 쳐도 아이콘을 조회할 수 있습니다~~~~~ 2021. 5. 12.
[Swift] PhotoKit 라이브러리 사용하기 생각했던 것 보다 훨씬 방대한 내용이라 정리가 필요해 보여서 포스팅 해봅니다. 클래스, Privacy, 이미지 가져오기 순으로 살펴 볼 까 합니다. 컨텐츠 목록 클래스 알아보기 Privacy 갤러리 접근 사용자 권한 (아직 작성중) 썸네일 이미지 가져오기 원본 이미지 가져오기 클래스 알아보기 PHAsset : PHObject 포토 라이브러리에서 하나의 이미지나 비디오, 라이브 포토를 표현한다. 에셋은 이미지나 비디오에 대한 메타 데이터를 포함한다. static 메소드인 fecthAssets은 PHFetchResult를 반환한다. 메타데이터를 사용하는 이유는 이미지 자체를 불러오려면 아주 많은 메모리와 자원이 필요하다. 따라서 경우에 따라 많은 이미지를 불러오면 크래쉬 되는 일이 발생 할 수 있다. 여기에.. 2021. 4. 2.
[Swift] 델리게이트 패턴 iOS A라는 뷰 컨트롤에서 B라는 뷰 컨트롤로 이동할 때 데이터를 넘겨줘야 할 경우가 있습니다. 이럴 때 쓸 수 있는 방법이 스토리보드라면 segue를 사용하거나 B에 프로퍼티를 만들어 접근하는 방법이 있습니다. 그런데 만약에 A Bool { if (nameTextField.text != "") { delegate?.updateLabel(nameTextField.text ?? "") nameTextField.resignFirstResponder() } return true } @objc func popViewController() { self.dismiss(animated: true, completion: nil) } } viewDidLoad 에서는 네비게이션에 들어갈 버튼과 텍스트 필드의 동작을 위해 델리게.. 2021. 3. 24.
[Swift] UIButton 버튼 눌러서 함수 호출 addTarget (처음 부터 차근차근) 이번에 알아볼 건 UIButton의 생성과 UIControl action 으로 메소드를 호출 하는 방법을 알아보겠습니다~~ 스위프트로 처음 프로젝트를 시작해 보시거나 공부하시기 위해 이 포스팅을 참고하셨다면 도움이 될 것 같습니다. 뷰는 코드로 작성하지 않고 xcode 스위프트 프로젝트를 생성하면 기본적으로 세팅되어 있는 Main.Storyboard 와 ViewcController를 가지고 해보도록 하겠습니다. 만약 스토리보드 없이 코드로 프로젝트를 시작하고 싶으신 분은 아래 포스팅을 참고하시면 됩니다. [Swift] Storyboard 없이 Swift 프로젝트 시작하기 Swift 프로젝트를 새로 생성하고 실행 시키면 기본으로 Main.storyboard를 시작점으로 잡게 됩니다. 이때 메인 스토리보드로.. 2021. 3. 23.
[Swift]UITableViewDataSourcePrefetching 테이블 뷰셀에 데이터 미리 로드 시키기 UITableViewDataSourcePrefetching 은 프로토콜의 한 종류로 사용자의 화면에서 보여지기 전에 셀에서 처리해야 하는 연산이 긴 경우 미리 연산을 수행할 수 있게 해주는 DataSource 입니다. 이러한 경우가 아니라면 굳이 잘 사용되지 않지만 이번에 데이터를 외부로 부터 받아와 셀에 보여주는 경우에 대해 공부하면서 알게 되어 포스팅 해볼까 합니다. prefetch란? 진행 중인 처리와 병행하여 필요하다고 생각되는 데이터를 사전에 판독하는 것을 말한다. - 출처 : 컴퓨터인터넷IT용어대사전 사용자 화면에 보여지는 테이블 뷰의 데이터 소스와 더불어 셀에서 미리 데이터를 준비해야 하거나 데이터를 준비(처리)하는 시간이 긴 경우 사용하게 되며 tableView(_:cellForRowAt:.. 2021. 3. 19.
[Swift] Storyboard 없이 Swift 프로젝트 시작하기 Swift 프로젝트를 새로 생성하고 실행 시키면 기본으로 Main.storyboard를 시작점으로 잡게 됩니다. 이때 메인 스토리보드로 시작하지 않고 스토리보드 없이 프로젝트를 실행시키고 싶다면 아래 튜토리얼 순으로 따라서 진행해 주시면 됩니다. 우선 프로젝트에 있는 Main.storyboard를 삭제해 줍니다. 해당 파일을 클릭하시고 백스페이스 누르시면 아래와 같은 창이 뜹니다. 해당 파일의 참조만 지워 줄 것인지 아니면 파일을 휴지통으로 옮겨 참조 뿐만 아니라 파일도 같이 지워 줄 것인지 묻는 창입니다. 이때 Move To Trash 버튼을 눌러서 완전히 삭제 해 줍니다. Remove Reference는 참조만 지우는 것이기 때문에 해당 프로젝트에 파일이 남아 있게 됩니다. 파란 버튼 누르지 마시고 .. 2021. 3. 3.
[JavaScript] Symbol 타입 심벌 고유한 값으로 자기 자신만 같은 값으로 취급된다. 생성은 Symbol()을 통해서 생성하며 위에서 생성된 a 변수는 Symbol 값을 가지고 있는 것을 알 수 있다 앞서 이야기 했듯이 심벌은 고유한 값이기 때문에 같은 비교할 경우 false를 뱉어 낸다 심벌에 문자열을 전달하면 설명을 덧붙이거나 같은 값을 가리키게 할 수 있다. 우선 간단하게 Symbol의 인자로 문자열을 지정할 경우 간단히 해당 심볼을 설명하게 된다. Symbol()에 인자를 전달해서 심볼 타입의 변수를 만들면 해당 변수를 찍어봤을 때 Symbol("test") 전달한 인자를 가지고 있는 것을 볼 수 있다. 그러나 심볼은 생성할 때마다 고유의 값을 가지고 있기 때문에 같은 인자를 넘겨준 변수라 해도 비교할 경우 두 변수는 다른 값.. 2021. 2. 20.
[SwiftUI] UserDefault 역활을 하는 AppStorage AppStorage 는 기존에 사용했던 UserDefault 같은 역활을 한다. Property Wrapper 로서 키 값을 필요로 한다. 사용은 아래 코드와 같이 @AppStorage("userName") var userName = "" 작성하면 된다. @State 프로퍼티 워레퍼 처럼 구조체 안에서 $변수명 으로 접근하여 사용하면 된다 TextField("플레이스 홀더 입니다", text: $userName) 2021. 2. 12.
[SwiftUI] TextField와 Toggle 사용하기 설정 페이지나 로그인 페이지에서 많이 사용하는 TextField와 Toggle Life Cycle은 순수하게 SwiftUI로 앱을 만들고자 한다면 SwiftUI app 을 라이프 사이클로 지정하면 되고, 만약 스토리보드를 함께 사용하고자 한다면 UIKit app delegate를 사용하면 된다! 우선 전체를 이루고 있는 view 역활을 하는 body에 NavigationView를 추가한다. navigationView를 다루기에 VStack을 추가한다. 이름에서 유추할 수 있듯이 vertical stack 이고 계층 구조에서 children view를 수직으로 쌓는다. var body: some View { NavigationView { VStack { } .navigationTitle("테스트 앱") }.. 2021. 2. 10.
데이터 베이스 정규화 1NF, 2NF, 3NF 관계형 데이터베이스 설계시 데이터의 중복이 발생하면 이상 현상(삽입 이상, 삭제 이상, 갱신 이상)이 발생하게 됩니다. 따라서 이 데이터 중복을 최소한으로 줄여 이상 현상 발생을 줄이게 되는데 이때 수행하는 것이 정규화(Normalization)라고 합니다. 정처기 공부시 기본 cs나 데이터베이스 경험이 없다면 한번쯤 발목 잡힐 부분이라 이 기회에 쉽게 정리해보기로! 따라서 정처기 외에 CS를 공부하시는 분이라면 뒤로가기 버튼을 눌러주세요~ 1NF (1정규형) 1 정규형은 원자값으로 구성 되어야 합니다. 여기서 말하는 원자는 고등학교 화학에서 한 번쯤 들어봤을 만한 화학적 성질에서 이야기하는 원자를 생각하면 쉬워요 더 이상 분해될 수 없고 쪼갤 수 없는 값을 말합니다. 즉 테이블에서 행과 열 중 열의 값.. 2020. 12. 29.
iOS Date Picker Style 알아보기 Objective c 이전 버전에서 기본적으로 휠로 나왔던 데이트 픽커 스타일이 현 버전에서 컴펙트 타입으로 나오는.... 그래서 이를 따로 지정해 주려면 아래의 방법과 같이 스타일을 지정해 줘야 한다. [datePicker setPreferredDatePickerStyle:UIDatePickerStyleWheels]; UIDatePickerStyleAutomatic 자동으로 지정해 주고 싶은 경우 사용 UIDatePickerStyleCompact 컴팩트한 타입의 데이트 픽커를 사용하고 싶은 경우 이렇게 보여지고 날짜를 터치하면 달력이 띄워집니다 UIDatePickerStyleWheels 휠 스타일로 나오게 하고 싶은 경우. 텍스트필드에 악세서리 뷰로 넣고 싶을 때 자주 사용하고 있는 스타일 UIDatePickerStyleI.. 2020. 12. 28.