Xcode 16 릴리스 노트를 보다가...새롭게 알게 된 내용이 있어서 간단히 정리!! # Typed throws그냥 한마디로enum MyError: Error { case invalid}func foo() ➡️throws(MyError)⬅️ -> String { ... }이런식으로 throws할 때 에러 타입을 지정할 수 있게 되는 것 같다. 위 foo메소드는 String을 리턴하거나, 오직 MyError타입의 에러만 throw할 수 있다. enum OtherError: Error { case 저쩌구} func foo() throws(MyError) -> String { do { try ~~~~~~ } catch { throw OtherErr..
오.... Run, Break, Inspect: Explore effective debugging in LLDB 을 보면서 처음알았던 사실이 있어서 메모해둔다. 다 breakpoint관한 내용임 # Breakpoint대충 이런코드가 있다고 생각해보자. Button의 생성자 쪽에 breakpoint를 걸어놨으므로 Button이 생성될 때 프로그램이 멈추면서 걸릴것이다.이렇게!위 코드는 Hello, world!라는 Button을 누르면 someMethod가 실행되는데, 버튼을 한번 눌러보겠다!!!그럼 이렇게 breakpoint가 걸린다.여기서 궁금증이 들 수 있는데, 20번째 라인에 breakpoint를 걸어놨는데 왜 21번째 라인에서도 걸린것인가? 이다. Run, Break, Inspect: Explor..
Core Motion관련해서 테스트해보고 싶은게 있어서 1. 프로젝트를 새로 만들고 2. 동작 및 피트니스 권한 요청을 하고 3. 걸음수 가져오기 4. 시뮬레이터 아니고 실 디바이스에서 빌드 대충 이런식으로 했는데, 권한 부분을 다시 테스트해보고싶어서 1. 앱을 삭제했다가 2. 다시 빌드해서 설치 3. 동작 및 피트니스 권한이 계속 동의된 상태로 설치되는것이다...?? 뭐지..하고 다른 앱도 설치해봤는데 동일한것이다. (폰을 재부팅해도 권한이 유지됐음) e.g. 왜 이런 현상이 발생하는지 잘 모르겠다. (캐싱이 되나;?) 다른 앱은 모르겠고..일단 내 테스트앱이라도 초기화할 수 있는 방법이 없나?; 하고 찾아봤는데, 나한테 효과가 있는 방법을 찾았따 Xcode > Window > Device and Si..
precondition을 얼마전에 처음 봤는데, 그 때 쓰기 시작한 글을 마무리를 못했네여 설날 기념으로 마무리해서 발행쓰 # assert Debug configuration에서 오류가 생기면 치명적일 것인 곳에 심어 놓는 에러 검출용 코드이다. 즉 Release configuration에서는 아무 영향을 주지 않는다. func assert( _ condition: @autoclosure () -> Bool, _ message: @autoclosure () -> String = String(), file: StaticString = #file, line: UInt = #line ) ------ [사용법] assert(false) assert(1 + 1 != 2, "assert message") 이 con..
# isAccessibilityElement element가 접근성 요소인지 여부를 나타내는 Bool값 UIKit control이 아닌경우 기본값은 false - UIControl을 상속받고 있는 UIButton같은것들 ➡️ 기본값 true - UIView나 UIImageView같은것들 ➡️ 기본값 false 이런경우 기본적으로 UIButton에만 접근성 요소로 잡힐것이다. 이때, 바깥의 주황색 View에도 접근성 요소에 포함하려면, self.myView.isAccessibilityElement = true self.myView.accessibilityLabel = "적절한 accessibilityLabel" isAccessibilityElement 프로퍼티를 true로 만들어주면 된다. UIView에 ..
2018년 회고와 2019년 다짐 2019년 회고와 2020년 다짐 2020년 회고와 2021년 다짐 2021년 회고와 2022년 다짐 2022년 회고와 2023년 다짐 올해에는 진짜 한게 없는 것 같았는데, 또 되돌아보니 이것저것 했고, 도전하고, 절망도하고.. 여러가지 경험들을 한 것 같다. 이렇게 한 해를 돌아보는 시간이 있기에 내년이 더 반갑게 느껴지고 시작의 설레임이 배가 되는 듯한 느낌! # 운동 작년에 10kg를 감량했으니 조금 더 욕심내가지고 총 20kg..아니 15kg 감량까지도 해보고싶었는데, 약 12kg에서 그쳤다. [2022년 7월 1일 건강검진] [2022년 12월 14일 헬스장] [2023년 8월 8일 건강검진] 최근에는 인바디를 안재서.. 지표가 없긴 한데, 대충 비슷할거라고 ..
옛날에 PHPicker관련해서 쓴 것들 왜이렇게 헷갈리지.. # 권한 필요없음 기본적으로 사진을 단순 Read하기 위해서는 사진 접근 권한이 필요없음 (= PHPicker를 띄우기 위해서는 권한이 따로 필요없음) PHPicker를 띄우면 왼쪽 그림처럼 안내 텍스트가 보일거고, 설정에 가면 오른족 그림처럼 비공개로 접근으로 뜰 것이다. 이 앱은 사용자의 사진 보관함을 표시할 수 있지만, 오직 사용자가 선택한 항목에만 접근할 수 있습니다. 그러니까.. PHPicker를 띄웠으면 모든 사진/비디오 같은것들이 나올텐데, 이런것들에 앱(코드로)이 접근 못하고 내가 선택하고 추가한 것들에만 접근 할 수 있다는 뜻 암튼 이 PHPicker를 띄우고, PHPicker가 모든 Asset들을 보여주는것에 대해서는 따로 권..
- swift delegate
- 피아노
- Combine
- SwiftUI
- WKWebView
- ios 13
- fastlane
- np-hard
- 스위프트 문법
- FLUTTER
- swift array
- 제이슨 파싱
- Swift
- swift 공부
- actor
- Accessibility
- UIBezierPath
- WidgetKit
- Git
- swift tutorial
- iOS delegate
- 스위프트
- np-complete
- WWDC
- swift sort
- swift3
- Xcode
- 회고
- IOS
- github
- Total
- Today
- Yesterday