일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- tabman
- swift concurrency
- github
- backend
- Project
- UIStackView
- Flutter
- Complication
- Tuist
- coreml
- Delegate Pattern
- UITableView
- Apple Developer Academy
- watchkit
- cloud functions
- fcm
- Sendbird
- app intents
- task.yield()
- SwiftUI
- createml
- WWDC22
- spring
- 코테
- Swift
- UIDatePicker
- widgetkit
- Firebase
- ios
- Coding Test
- Today
- Total
목록분류 전체보기 (68)
azhy의 iOS 이야기
2022년 7월 12일에 작성됨 프로젝트 작업을 하다가 갑자기 한눈에 봐도 어지러운 이런 에러코드가 떴습니다.Updating selectors failed with: Error Domain=NSCocoaErrorDomain Code=4099 "The connection to service named com.apple.commcenter.coretelephony.xpc was invalidated: failed at lookup with error 3Synchronous remote object proxy returned error: Error Domain=NSCocoaErrorDomain Code=4099 "The connection to service named com.apple.commcenter.c..
2022년 7월 9일에 작성됨Struct, Class 공통점값을 저장할 프로퍼티 정의함수적 기능을 제공하는 메서드 정의"."을 사용하여 하위 프로퍼티에 접근 가능생성자를 통해 초기상태 설정 가능확장 (extension) 가능프로토콜 사용 가능정의 예시struct SomeStructure { // structure definition goes here}class SomeClass { // class definition goes here} Struct와 Class 차이점Struct는 값 타입, Class는 참조 타입Class는 상속이 가능하지만 Struct는 상속 불가능 -> 프로토콜 채택해서 기능 확장 가능 (스위프트 권장방식)타입캐스팅은 클래스의 인스턴스만 가능 (상위 또는 하위 클래스 타입으..
2022년 7월 8일에 작성됨get, setget, set이라고 하면 흔히 생각이 들고 자주 봤었던 getter, setter라고 생각할 수 있습니다.사용하는 방법과 이유가 거의 유사합니다. swift에서는 get, set을 묶어 연산 프로퍼티라고 부르죠. 사용법을 간단히 먼저 알아봅시다.class Demo { // get, set을 사용하기 위해서는 그 연산된 값을 저장할 변수가 반드시 있어야한다. var _value : Int = 1 // value의 역할은 _value에 대해서 값을 연산하여 value에 할당하거나 리턴하는 역할만 한다. var value: Int { get { return _value } set(ne..
2022년 7월 7일에 작성됨PresentedVC vs PresentingVC먼저 이 두 개의 ViewController를 먼저 알아야 합니다. PresentedViewController : 자신이 호출한 ViewControllerPresentingViewController : 자신을 호출한 ViewController 이 친구들을 통해서 자신을 호출한 ViewController 가 있는지를 확인해서 dismiss 할 것인지에 대한 판단을 할 수 있습니다.func dismiss(viewController: UIViewController) { if presentedViewController == viewController { dismiss(animated: true) }}extensi..
2022년 7월 7일에 작성됨scrollToRow(at:at:animated:)사실 방법은 정말 간단합니다. 바로 scrllToRow를 사용하면 되는 데 사용법은 다음과 같습니다. // 날짜 안지난 스토리로 스크롤 이동 let startIndex = IndexPath(row: StoryDay().storyArray.firstIndex(of: StoryDay().storyArray.filter { $0 > Int(CoupleTabViewModel.publicBeginCoupleDay)! }.min()!)!, section: 0)self.tableView.scrollToRow(at: startIndex, at: .top, animated: false) 사실 코드는 별거 없습니다. 자신이 원하는 위치의 In..
2022년 7월 5일에 작성됨 개인 프로젝트를 하고 있는데 tableView를 사용하는 도중 내가 예상한 결과와 다른 화면이 나오는 문제가 생겼습니다. 원래 결과는 30일까지만 text가 회색이고 나머지 뒤에 text는 검은색이어야 정상적은 결과지만 보시다시피 중간에 뜬금없이 200일, 300일, 1주년, 400일 text가 회색으로 표시되고 있었습니다. 그래서 cell에 들어가는 data가 문제인가 싶어서 print를 찍어봤지만 데이터에는 문제가 없었어요.. 무엇이 문제인지 찾다가 결국 알아내서 한번 정리해보려 합니다.dequeueReusableCelltableView를 사용한 경험이 있으면 어디선가 봤을 법한 코드입니다. 애플 공식 문서에 따르면 "성능상의 이유로 테이블 보기의 데이터 원본은 일반적으..
2022년 6월 29일에 작성됨Button에 click action 달기 private lazy var setBtn: UIButton = { let btn = UIButton() btn.addTarget(self, action: #selector(setBtnTap), for: .touchUpInside) return btn }() @objc func setBtnTap() { print("setBtnTap") } 우선 click 했을 때 실행하는 함수를 만들어줘야 합니다. 간단히 setBtnTap이라는 함수를 만들었고 UIButton View를 하나 만들었습니다. 그 버튼에 addTarget이라는 메서드를 사용하여 앞에서 만든 s..
2022년 6월 29일에 작성됨 delegate pattern 은 정말 자주 쓰이기 때문에 정말 중요합니다.delegate 가 무엇일까? 사전적 정의는 위임하다. 즉 어떤 작업을 다른 사람에게 위임해서 요청한다 라는 느낌으로 이해하면 됩니다. delegate pattern을 쓰기 위해서는 송신자와 수신자가 필요한데 쉽게 생각하면 데이터를 주고받는 ViewController 2개가 필요하다고 생각합시다. delegate 패턴은 보통 되돌아오는 과정 (B -> A) 경우에 사용하고 반대인 A -> B의 경우에는 프로퍼티 접근으로 쉽게 데이터를 전달할 수 있습니다. 프로퍼티 접근에 관해서는 맨 밑에서 간단히 설명해 볼게요.프로토콜 선언protocol TapDelegate: AnyObject { func ..
2022년 6월 24일에 작성됨 어느 날 원티드 프리온보딩 코스의 사전과제 내용을 보게 됐는데, 아쉽게도 제출 날짜가 애매해서 시간을 맞추기는 힘들 거 같았지만 그 내용이 재밌을 거 같았고 연습하기도 좋을 거 같아서 한번 만들어 보았습니다.사전과제 사전과제는 다음과 같았습니다.OpenWeather API 를 이용하여 두 개의 화면을 만들어야 했는데, 첫 번째 화면은 주어진 도시의 정보를 보여주고 두 번째 화면은 첫 번째 화면에서 도시를 클릭했을 때 그 도시의 자세한 정보를 보여주는 화면입니다. 우선 제약사항을 보고 '쉽지 않겠다' 라고 직감했다.. 외부 라이브러리를 일체 사용할 수 없었기에 Alamofire, Kingfisher, Snapkit 등 아무것도 쓸 수 없었습니다.. 하지만 라이브러리에 의존..
2022년 6월 22일에 작성됨 원하는 Font 검색해서 다운하기저는 눈누 라는 페이지를 자주 사용합니다. 원하는 폰트를 다운해 주세요! TTF vs OTF폰트에는 TTF와 OTF 두 개의 파일이 있습니다. TTF는 포맷방식이 TrueType Font이고 문서 작업이나 디자인 작업에 적합한 대신 용량이 크고 OTF는 포맷방식이 OpenType Font 이고 고해상도 출력 작업에 용이하고 용량이 적습니다. 말고도 많은 차이점이 있지만 사실 TTF나 OTF는 작업 장식, 속도, 파일 크기 등 모든 것이 상대적이기 때문에 일반적인 작업을 하는 경우에는 큰 차이가 없다고 합니다. 차이가 나더라도 엄청 미세한 차이라고 하네요. 고해상도 대형 출력 작업 (300 dpi 이상)을 한다면 OTF를 권장하고 나머지는 아..