Swift
-
UIView-Encapsulated-Layout-Width 오류Swift 2022. 3. 24. 11:33
분명히 맞게 UILayout을 작성한것 같은데 아래와 같은 오류가 뜰때 UIView-Encapsulated-Layout-Width Width가 0 이라는것과 충돌된다는 오류가 뜰때 // 예시 "" ) Will attempt to recover by breaking constraint UIView-Encapsulated-Layout-Width(or Height) 가 뭔지 궁금할텐데, 이거는 tableview 나 collectionView에서 headerview 나 footerview로 지정했을때 생기고 오류났을때를 내용들을 보니까 viewdidload에서 실행했는지, 레이아웃의 구성 시점에 대한 오류라고 하는것 같았는데,,, 나에겐 해당되지 않는 내용이었다. (맞는 시점에 호출하고 있었음) This hap..
-
Associated type?Swift 2022. 1. 4. 19:54
Associated Type은 뭘까? 사람마다 접하거나 사용한 부분이 다르지만, 나는 처음 여기서 봤다. 짜잔~ 바로 저기 있는 associatedtype 이다. AssociatedType ? 실제로 associatedtype 은 Generics 아래 위치해 있다. https://docs.swift.org/swift-book/LanguageGuide/Generics.html generic의 성질이 있다는 말인데, 바로 위에서 처럼 protocol에서 사용된다. 설명된 예제를 보면 저런식으로 protocol에 Item 이라는 associatedtype을 선언해서 사용할 수 있는데 사용할때 아래처럼 Int 로 선언해서 사용할 수도, Element로 선언해 사용할 수도 있는 셈이다. 결론 결론 이랄것도 없지만..
-
View의 life cycle (layoutsubviews에 대해)Swift 2021. 12. 31. 15:14
우선 View와 관련된 life cycle을 확인할 필요가 있다. ViewController가 layout 을 잡는 과정이랄까? 우선 layoutifneeded 와 setNeedsLayout의 개념을 이해하고 있다는 가정으로 설명한다. (모르시는분은 애플 공식문서 확인고고!) layoutsubviews() 우리가 layout을 변경하거나, 그릴때 layoutsubviews() 가 호출되며 반영한다. 공식문서를 보면 직접 호출하지 말라고 되어있는데, 그러면 이 layoutsubviews() 가 호출될때 이부분을 viewcontroller에서 수정해 다룰 수 있게 다음 메소드 들이 있다. viewWillLayoutSubviews -> layoutsubviews -> 레이아웃 정보 변경사항 뷰에 반영~ vie..
-
Xcode Cloud란Swift 2021. 12. 28. 11:03
https://developer.apple.com/videos/play/wwdc2021/10267/ Meet Xcode Cloud - WWDC21 - Videos - Apple Developer Get to know Xcode Cloud, Apple's continuous integration and continuous delivery (CI/CD) service for building apps and frameworks for all... developer.apple.com 위 WWDC에서 활용법까지 알려준다. 실제 문서 : https://developer.apple.com/kr/xcode-cloud/ Xcode Cloud Apple이 제공하는 CI/CD tool 이라니 Xcode Cloud는 Xcod..
-
Swift AsyncSequence (비동기 시퀀스에 대한 지원)Swift 2021. 12. 22. 13:51
Swift 5.5 async await 과 함께 https://developer.apple.com/documentation/swift/asyncsequence AsyncSequence라 우선 Async Await 도 알아야한다 : https://kkimin.tistory.com/56 (더이상 completiion 콜백은 안녕~~) AsyncSequence 란 protocol AsyncSequence 다른곳에서 다음과 같은 예제도 볼 수 있었다. let url = URL(string: "https://www.donnywals.com")! let sequence = url.lines.map { string in return string.count } for try await line in sequence {..
-
Feature flags in SwiftSwift 2021. 12. 22. 13:27
Feature flags 란? 말 그대로 기능 flag 를 뜻한다. 서버로 실시간으로 변경해서 -> 보이는 화면을 다르게 만들어 주는 개념 : 사용자가 보이는 화면을 바로 다르게 해줄 수 있기 때문에 아래와 같은 장점이 아주아주 좋다고 느껴졌다(공감 100) 1. 빌드 시간을 줄일 수 있고 2. 여러가지로 빠르게 테스트 할 수 있도록 제공해줄 수 있습니다. (서로 윈윈 ) + 기능을 제한적으로 오픈하거나 + 서비스가 안정적으로 오픈되기 전까지 해둘 수 있다. (예를 들어, 서버에서 1로주면 기능을 보여주고, 0으로 주면 보여주지 않는다고 가정할 경우 기능에 문제가 있을때 서버를 수정해 빠르게 대응할 수 도 있는 등 장점이 있다.) + 서비스 부하나 조금씩 오류 등을 확인해 부정적인 반응을 낮춰 점진적으로..
-
Swift nil, 왜 null이 아닐까?Swift 2021. 12. 19. 02:23
출처 : https://www.quora.com/Why-does-Swift-use-nil-instead-of-null Swift does allow use of null in a C-like way, but also has a more abstract concept of optional values. In a language like C, all pointer types are optional and all "non-pointer" types are not. This is a direct consequence of how C models optional values: pointers that point nowhere — that have an address value of 0 on many systems..
-
Property WrapperSwift 2021. 12. 13. 13:30
Swift5.1에서 추가된 기능 Swift UI 관련된 영상을 보면 @ObservedObject , @Binding, @State 이런 친구들이 있는데 ...! Property 앞에 선언해서 사용하는 형식이다. 아래 같은 느낌이다. @ObservedObject var viewModel = ViewModel() Propery Wrapper는 반복되는 로직을 프로퍼티에 연결할 수 있다. @propertyWrapper 를 붙이고 wrappedValue 라는 반복되는 로직을 넣으면 된다. 내 예제는 Userdefaults에 Property Wrapper를 적용한것이다. @propertyWrapper// 이런식으로 선언해주고 struct UserDefaultsWrapper { let key: String let ..