목록ios (22)
study record
프로젝트를 리팩토링하는 과정에서 어떤 값에 대해서 전달해주기가 너무 애매한 상황이 발생했다. 그래서 임시적으로 static var로 프로퍼티를 선언해두고 다른 곳에서 접근하기 쉽도록 임시방편해두었는데, 이게 좋은 방법인지 제대로 알아두고자 작성하게 되었다. 스위프트에서 static은 싱글톤 패턴을 적용할 때 사용했던 적이 있었다. static을 사용하면 프로그램이 종료될 때까지 메모리에 사라지지 않고 남아있기 때문에 많이 사용하는 것은 좋지 않다고 알고 있었다. static 프로퍼티는 애플리케이션 전체에서 유지되어야 하는 전역 설정을 객체 생성 없이 진행할 수 있다는 장점이 있다. 따라서 많은 객체를 생성하지 않아도 되어 비용을 줄일 수 있다. 인스턴스가 생성될 때마다 새로운 값이 필요하지 않은 경우, ..
iOS application states Not running : 그 앱이 시작되지 않았거나 시스템에의해 종료된 상태 Inactive : 앱이 포그라운드에서 동작하고 있지만 받은 이벤트가 현재 없는 상태. 앱이 다른 상태로 변화하기 때문에 이 상태에서 보통 짧게 머무른다. 잠깐 동안 inactive 상태에서 머무르는 시간은 유저가 화면을 닫았거나 시스템이 유저를 다른 이벤트에 반응하도록 하게 할 때이다. (문자나 전화가 온 경우) Active : 앱이 포그라운드에서 작동되고 이벤트를 받고 있는 상태. 포그라운드 앱들의 보통 상태이다. Background : 앱이 백그라운드에 있으며 코드가 실행되고 있는 상태. 대부분의 앱들은 종료되기 전에 짧게 이 상태에 들어간다. 그러나 엑스트라 실행을 요청하는 앱은 ..
rx를 활용해서 네비게이션을 하려는 과정에서 네비게이션 컨트롤러를 활용하는 것이 잘 작동하지 않았다. (코드로 UI를 구성 중이다.) 이 블로그를 참고하여 해결하였다. https://iamcho2.github.io/2021/03/28/navigation-controller-initial-setting SceneDelegate에 var window: UIWindow? var navigationController: UINavigationController? func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) { // Use this method..
@IBDesinable 속성을 사용하면 인터페이스 빌더 수행을 라이브로 업데이트시킬 수 있다. IBDesinable은 UIView 클래스에서 잘 정의되기 위해 프레임을 필요로 한다. https://zeddios.tistory.com/270 이 블로그를 참고하면 IBInspectable과 IBDesinable 에 대한 이해도를 높일 수 있다. UIView를 활용할 때 테두리에만 디자인을 추가하고자 하는 경우가 생길 수 있다. 이 때의 borderWidth, borderColor를 지정하는 방법에서 두 가지를 사용한다. borderWidth 테두리 넓이를 지정하기 위해 새로운 cocoaTouch 파일을 만들고 View 에 할당한다. 이 코코아 터치 파일에서 @IBInspectable 을 활용하면 set연산을..