본문 바로가기

짤막 TlL22

Alert error 현재 뷰가 아닌곳에서 alert띄우려고 하고있어서, "whose view is not in the window hierarchy"라고 알려줌 왜냐 appDelegate나 sceneDelegate는 뷰가 아니라서 띄우는거 자체가 불가능하다 그래서 present만 메인의 비동기처리로 보내 현재 씬의 최상단뷰에서 띄워줌 DispatchQueue.main.async { guard let viewController = (UIApplication.shared.connectedScenes.first?.delegate as? SceneDelegate)?.window?.rootViewController?.topViewController else { return } viewController.present(alert, a.. 2022. 10. 29.
Self vs self self: 해당 Type 내부의 값을 나타낸다 ex: var num = 10 이라면 10 Self Type 타입 자체를 나타낸다 ex: Stirng, Int, Double 그래서 let names = ["Chris", "Alex", "Ewa", "Barry", "Daniella"] 에서 Self는 Array이고 element니까 안의 요소들이다. 이를 매개변수의 전달인자로 받아서 정렬을 해주는 것이다. extension Int { func plus() -> Self { return self + self } } 10.plus() // 20 2022. 10. 28.
타입캐스팅 TIL 업캐스팅 let iphone: Mobile = Apple(name: "APPLE") iphone as Mobile //Apple 인스턴스가(iphone) 서브 클래스(Apple)를 채택하고, 슈퍼클래스 타입(Mobile)으로 참조하는 "업캐스팅"을 한 것이기 때문에, 인스턴스의 접근 범위가 슈퍼클래스 멤버로 한정되는 것임. 슈퍼클래스를 참조한 것이기 때문에 서브 클래스에서 아예 슈퍼클래스로 전환되는 것이 아님. 업캐스팅과 다운캐스팅은 해당 인스턴스의 타입이 바껴버리는 변수의 개념이 아니라(해당 인스턴스의 타입은 그대로임) 다른 인스턴스를 생성하여 거기에 바뀐 타입캐스팅된 인스턴스의 상태를 저장한다고 보면됨 2022. 8. 18.
CLGeocoder 내 위치에 대한 정보는 어떻게 받아올까? 날씨프로젝트에서 위치가 영어로 쾅명이 나와서...정신이 혼미했는데 새싹동기님이 관련 자료를 알려주셨다 🥹 공식문서에서는 지리적 좌표와 장소 이름 사이를 변환하기 위한 인터페이스. 라고 되어있고 규칙도 있다. 하나의 사용자 작업에 대해 최대 하나의 지오코딩 요청을 보내세요. 사용자가 동일한 위치를 지오코딩하는 것과 관련된 여러 작업을 수행하는 경우, 각 작업에 대한 개별 요청을 시작하는 대신 초기 지오코딩 요청의 결과를 재사용하십시오. 사용자의 현재 위치를 자동으로 업데이트하려면(예: 사용자가 이동할 때), 사용자가 상당한 거리를 이동했을 때와 합리적인 시간이 지난 후에만 새로운 지오코딩 요청을 발행하십시오. 예를 들어, 일반적인 상황에서는 분당 하나 이상의 지오코.. 2022. 8. 17.