ios개발/개념 정리 30

<스위프트> CLGeocoder(), CLLocation(), MapView

참고 CLGeocoder()는 위도와 경도를 가져온다. CLLocation()은 ios 맵 디비에서 주소를 가져온다 함. 이게 풀 코드이다. 근데 위의 설명만으로는 이해하고 구현하기 어려워서 애플 문서를 좀 참고 했다.[https://developer.apple.com/documentation/corelocation/cllocationmanager] CLLocationManager Overview You use instances of this class to configure, start, and stop the Core Location services. A location manager object supports the following location-related activities: Tracki..

<스위프트> dispatchQueue , dispatchGroup

dispatchQueue 공식 문서 class DispatchQueue : DispatchObject dispatchQueue라는 객체는 메인 스레드나 백그라운드 스레드에서 업무를 직렬이나 병렬적으로 수행하도록 한다. 이제 큐에 업무들을 제출하는데 , 백그라운드 큐에 넣으면 시스템이 알아서 수행해준다. 그런데 각 태스크가 어떤 스레드에 의해 수행되는지는 알 수 없다함. (메인 스레드는 여기서 예외라는데, 그말은 우리가 무엇을 특정지어 수행하도록 할 수 있따는 건가?) 여기서 내가 할 수 있는건 동기적으로나, 비동기적으로 태스크가 수행되도록 할 수 있는데, 메인스레드에서는 동기적으로 하지 말라한다. 그러다 데드락에 걸릴 수 있다고. 위의 내용 밑으로 avoiding excessive thread creat..

<스위프트> class vs struct

1. struct gives me a free init and i need to define one for class 2. inheritance (classes support inheritance, while structs don't) 3. classes are reference types and struct are value types 이렇게 클래스에 의해 생성한 한 객체를 다른 객체에 할당하면 레퍼런스로 넘어간다. [https://devmjun.github.io/archive/Swift-StructVSClass] 음 이걸 보면 역시 지역변수는 스택에 저장되고 새로 생성되는 클래스의 인스턴스는 힙에 생긴다. 스위프트는 스태틱 메소드 , 클래스 메소드 두개가 동일한거 같다. [https://docs.sw..

<스위프트> dismiss : Viewcontroller dismiss

이 분이 가정한 상황도 그냥 재미로 보기 좋아 보인다. dismiss 자체에 대한 설명이다. presented vc인 자기 자신이 호출하면 presenting vc가 presented vc를 제거해 주는 일을 한다. 뷰컨을 제거하는 방법이다. push냐 present냐에 따라 다르다. 이쯤되니까 present와 push가 nav에 의하냐 아니냐 빼고 뭐가 다른지 궁금해진다..... 차이 봤는데 일단 느낌은 nav는 계속 해서 뭔가 화면이 이동할때 방향성 있게 스택에 누적된다는 측면에서 좋은거 같다. 그런데 present는 일회성으로 그냥 하나 띄우는 느낌? ㅋㅋ 이 느낌 밖에 모르겠따. ㅋㅋ present도 여러번 해도 될거 아니야 근데 ㅋㅋ

<스위프트> 뷰컨트롤러 이동 1 : transition, present, show

뷰컨트롤러 전반에 대해서는 여기가 정말 자세한거 같다. 일단 첫 문단을 읽었는데 모르던 내용이 두개나 있다. There are two ways to display a view controller onscreen: embed it in a container view controller or present it. Container view controllers provide an app’s primary navigation, but presenting view controllers is also an important navigation tool. You use direct presentation to display a new view controller on top of the current one. Ty..

<스위프트> 메모리 관리 : weak vs unowned

글 다썼는데 지워졌다;;;하하ㅏㅇ아 간단하게 정리한다. 몇개 찾아봤는데 스위프트 다큐먼트 예시가 가장 좋은거 같다. weak은 참조하던 객체가 해제되면 nil로 세팅한다. 즉 weak은 nil이 될 수도 있는 경우에 사용한다. 예를 들면 아파트랑 세입자 같은 경우 아래 그림이 이해가 잘된다. 이제는 unowned에 대한 내용이다. unowned는 절대 nil이 되지 않을때 사용한다. 그래서 optional 타입으로 선언해도 안된다. 그래서 소비자랑 신용카드가 예시다. 신용카드는 소비자가 반드시 존재해야 생길 수 있다. 아파트는 세입자가 없어도 일단 nil로 될 수 있다는게 차이점 인듯 하다. 5일 지나니까 내가 까먹어서 제대로 이해 못한거 같아 다시 작성해 본다. [https://www.youtube.c..

ios : 공부해야할 개념 목록 , 스위프트 언어의 특징

0. 강의 목록 좀 쉬운 강의 어려운 강의 1. IOS 화면 전환하기 (viewController) 2. swift 언어의 기본 특징들??이 도대체 뭘까 [https://www.youtube.com/watch?v=99XbTaCJfhU] 일단 이분이 말하는거 요약 ㅋㅋ reference counting이 이전 가비지 콜렉팅 보다 좋다 한다. 어레이, 딕셔너리가 갑자기 밸류 타입이 되버렸다 함 ㅋㅋ 다른 언어들은 레퍼런스 타입이라는게 문제 또 근데 어레이는 패스되면 복사가 안일어나다가, 어레이 타입의 속성이 바뀌면 그때 복사가 된다함... 성능 문제?,그리고 실수 안하게 하려 한거 같다는데 어쨋든 이분은 사용자들이 언어마다 예외를 외워서 하는거 보다, 전형적으로 하던 관행은 좀 그렇게 했으면 좋겠다 함

<스위프트> 뷰 컨트롤러: modal, present, push back

(sans : 없이라는 뜻) 뷰컨트롤러와 화면 전환에 대한 개념들이다. 공부하다 보니 뷰 컨틀롤러 전환에 대해서 좀 공식 문서를 좀 더 자세히 읽게 되어서 새로운 글에서 정리하겠다. 1. push vs present show 는 modal을 띄우는 것이라 하고, push는 네비게이션 뷰 컨틀롤러에서 올리는 것이라 한다.?? 뭔가 더 있을거 같은데 ViewController의 view를 바꿔치기 ViewController가 다른 ViewController 호출(present) NavigationController 사용하여 화면전환(push) 화면전환용 객체 Segue 사용 1번은 메모리 오버플로우 위험이 있다는데 왜그러지? 2번은 모달로 뷰컨을 띄우는 방법이라는데 모달이 뭔지는 알겠는데 그냥 올라오는 방식..