반응형

분류 전체보기 129

swift - init(frame:), init(coder:) 대해 알아보자

스토리보드 없이 앱을 만들다 보면 아래와 같은 override init(frame:) 과 required init?(coder:) 이 필요한 것을 알 수 있다.초반에 지워도 실행은 되는지 이게 왜 있어야 하는지 의문점이 생겨서 알아보게 되었다.class OpenMarketListCollectionViewCell: UICollectionViewCell, CellDataUpdatable { static let identifier: String = "OpenMarketListCollectionViewCell" override init(frame: CGRect) { super.init(frame: frame) setUpUI() } required in..

코딩 2024.07.04

swift UIView init 대해 알아보자.

지금까지 UIView() 잘 써오셨나요?? 거두절미하고 UIView의 문서에서 initializer 를 보자요.  맞아여 이렇게 두개예요. 읭?? 근데 나는 UIView() 이렇게도 써왔는데?!!?!?! 왜 init() 에 대한 설명은 없는겨..?    봐봐! 생성하려고 괄호 열면 떡하니 처음으로 나오는게 () 생성자라고!! 그럼 이건 도대체 뭐다??? 오늘의 주제는 이런 의문점으로부터 시작합니다  흠.. UIView의 문서에는 init() 을 코빼기도 찾아볼 수 없으니 Implemented by subclass 어쩌구저쩌구 써있는 설명으로 구글링을 해보자구요 오호.. 사실 얘는 NSObject의 이니셜라이저였군요! 🤔앗 UIView에서 얘를 사용할 수 있다는건 어쨌든 NSObject를 상속받고 있단거..

코딩 2024.07.04

swift 오토 레이아웃 진행과정에 대해 공부해보자.

일단 오토레이아웃 진행과정? 언제 실행되는지에 대해 알아보라고해서 찾아보게 되었다.iOS Auto Layout 심층 분석본 글에서는 기본적인 오토레이아웃 튜토리얼들에서 잘 다루지 않는 커스텀 뷰에 오토레이아웃(auto layout)을 적용하는 방법과, 전반적으로 레이아웃 시스템이 어떻게 동작하는지를 중심으로 설명해보도록 하겠다. 오토레이아웃의 종류나 기본적인 적용방법들은 다른 좋은 튜토리얼들이 많으니 다루지 않을 예정이다.AutoLayout Programmatically 사용하기개인적으로 오토레이아웃을 사용할 때도 인터페이스빌더를 되도록이면 쓰지 않으면서 코드만로 작성하는 방법을 선호한다. 애플에서 제공하는 NSLayoutConstraint 의 경우 가독성이 매우 떨어지는 단점이 있고, 이를 보완하기 위..

코딩 2024.07.02

swift 단축키

네비게이터 영역command⌘ + 0  으로 접기/펼치기 가능command⌘ + 1~9 으로 메뉴 이동 가능인스펙터 영역command⌘ + option⌥ + 0 으로 접기/펼치기 가능command⌘ + option⌥ + 1... 으로 메뉴 이동 가능네비게이터, 인스펙터 예시 코드command⌘ + 방향키 : 시작점부터 끝까지 커서 이동command⌘ + Shift⇧ + 방향키 : 시적점부터 끝까지 블럭 선택블럭 선택 예시 option⌥ + 방향키 : 한 단어, 기호 단위로 커서 이동option⌥ + Shift⇧ + 방향키 : 한 단어, 기호 단위로 블럭 선택블럭 선택 예시 control⌃ + Shift⇧ + 방향키 : 세로 여러줄 블럭 선택 , 커서 이동 가능( 한꺼번에 코드 변경 가능)블럭 선택 예시 ..

코딩 2024.07.02

swift firebase 연동하면서 생긴 에러... Exception NSException * "`[FIRApp configure];` (`FirebaseApp.configure()` in Swift) could not find a valid GoogleService-Info.plist in your project. 해결해보자

react-native에서는 빌드가 성공이라고 뜨는데 앱자체는 떴다 바로 종료 되서 xcode로 빌드를 실행해보니 Exception NSException * "`[FIRApp configure];` (`FirebaseApp.configure()` in Swift) could not find a valid GoogleService-Info.plist in your project. Please download one from https://console.firebase.google.com/." 0x00000002826939f0라는 에러가 발생했다. 원인 : 파이어베이스에서 알려준대로 GoogleService-Info.plist 파일을그냥 넣었으나AppDelegate.m 에서 정의한 GoogleService-..

코딩 2024.07.02

swift 생명주기 (life cycle) 알아보자

오늘 특강을 들으면서 생명주기에 대해 잘 모른다는 것을 느끼고 한번 찾아보았다. 출처는 여기서 해왔으니 자세한 내용은 여기서 보시면 될 듯 하다   https://zeddios.tistory.com/43 [ZeddiOS:티스토리]  나는 다시 내가 찾기 힘들어서 남기는 것이니 자세한 내용은 위쪽에 참고하시면 좋을거 같습니다. View Contorller의 생명주기?이게 뭘까요?앱들은 이 'View Contorller'로 이루어져있는데요,화면이 하나로 되어있는 앱 들도 물론 있겠지만, 보통 하나 이상의 화면이 있죠?이 각각의 뷰컨들은 생명주기를 가지고 있답니다.생명주기라고 하니 언제 태어나고 언제 죽는 이런 주기같네요?  뷰컨에게서는 생명주기가 어떤걸까요?말그대로 '보여졌다 사라지는'주기겠죠?'보여졌다'-..

코딩 2024.07.02

swift 다양한 에러 접하기 logging error 또는 this class is not key value coding-compliant for the key

일단 에러 메시지가 나오면... 나도모르게 무시하는 경우가 있고 에러를 보고 문제를 찾을 생각을 안했다...근데 오류를 읽어야지... 문제를 빨리 해결할 수 있다.할면서도 불라불라 오류들을 보면 외면하고 싶은....  그래서 오늘은 오류를 외면하지말고 정면으로 부딧치기로해서 오류를 해결했다.  첫번째 로깅 초기화 하면서 오류가 발생한 것... 로그 메세지가 누락될 수 있으면 나타내는 오류 ~ 해결법은   이미지와 같이 + 누른다음에 IDEPreferLogStreaming=YES 입력후 close 누르면 된다 ~  두번째 자주하는 실수....아웃렛 이름을 바꾸고 싶다고 코드줄에만 바꾸게 된다면 아울렛 컬렉션에서는 변경이 안되어 잇기 때문에삭제하고 무조건 다시 연결해야된다.... 이런 오류를 놓치면... 쓸..

코딩 2024.06.28

swift UIButton.Configuration 개념 대해 공부해보자

오늘 UIButton 만들면서 버튼을 한번에 어떻게 만들까 고민이 많았다. 그러면서 찾아보게 된 기능 ~ 이거 쓰면 조금더 수월하게 사용할 수 있다는 생각을 했다. 단 ios 15 + 가능하다는 것을 참고하시면 좋다... 다 만들고 안되면 슬프니깐  iOS 15+버튼들을 유형별로 일관성 있는 방식으로 손쉽게 사용할 수 있게하기 위함이다 얼마나 좋은가 반복적으로 안적어도 되니 UIButton Configuration의 주요 속성title: 버튼에 표시되는 텍스트를 지정합니다. NSAttributedString 형식으로 설정할 수 있어 텍스트의 스타일링과 포맷팅을 자유롭게 적용할 수 있습니다. 또한, 버튼의 상태별로 다른 텍스트를 설정할 수도 있습니다.image: 버튼에 표시되는 이미지를 지정합니다. UII..

코딩 2024.06.24

swift 접근제한자 private 공부해보자

사용은 하고 있는데 어디에 사용해야 되는지 적합한지 몰라서...공부해볼려 합네다접근제어 종류 Swift에서는 아래의 5개의 접근레벨을 제공합니다.KeywordAccess LevelRangeopen개방 접근 수준모듈 외부에서도 접근 가능public공개 접근 수준모듈 외부에서도 접근 가능internal내부 접근 수준하나의 모듈 내부에서만 접근 가능fileprivate파일 내부 접근 수준하나의 파일 내에서만 접근 가능Private비공개 접근 수준정의한 블록 내부에서만 접근 가능open & public :Open과 Public 접근자 모두 선언한 모듈이 아닌 다른 모듈에서 사용가능합니다. 두 접근자의 차이점은 open은 다른 모듈에서 오버라이드와 서브클래싱이 가능하지만 public 접근자로 선언된 것은 다른 모..

코딩 2024.06.20

swift enumerated() 대해 알아보자

일단 야구게임을 풀면서 enumerated() 사용하는 것을 보았다.이전에도 한번 사용하긴 했는데 나는 다른 방식으로 사용을 하여 배열에서 값을 알아냈다...머 아무튼 다시 이런 방법이 있구나 생각하게 되어서. 까먹지 않게 메모장에 남긴다. "map을 쓸 때 element 랑 추가로 index는 동시에 사용하는 방법https://developer.apple.com/documentation/swift/repeated/enumerated()/  바로 이 함수입니다!!   평소에는 for in 구문을 통해서 배열의 첫 인덱스부터 마지막 인덱스까지 얻었습니다. map을 사용할 때는 index를 미리 선언하고 값을 증가하며 사용 했습니다. 이젠 이 함수를 사용하면 됩니다!!  https://developer.ap..

코딩 2024.06.18
반응형