ios개발 92

<스위프트> Parallel Programming with Swift (Target Queue, Dispatch Group, Barrier, Work Item, Semaphore & Dispatch Source)

일단 이 글이 지금 까지 본 글중 제일 설명이 잘되어 있다...... [https://medium.com/swift-india/parallel-programming-with-swift-part-2-4-46a3c6262359] 그래서 동기,비동기 정확한 차이, 비동기 안되는데 언제 비동기 되는거지 , 큐잔아. 들어온 작업 먼저 처리한다면서 비동기가 언제 의미가 있지? 그리고 콘커런트랑 시리얼은 정확히 무슨 차이인가, 이해를 해보자 이거지, 콘커런트가 병렬 처리니까, 이 방법이 병렬 처리인건 알겠는데 수행 순서상 들어온게 먼저 시작하긴 할 수 있는건가?? 프로세스의 우선순위에 관한건 시분할 시스템(라운드 로빈)상에서 우선순위에 따른 건가? async vs sync 차이는 결과물을 가져오는 순서에 초점을 두고..

<스위프트>수정중, UrlSessionTask를 resume,cancel,suspend해보자.!!!

How to stop/cancel/suspend/resume tasks on GCD queue [https://stackoverflow.com/questions/29492707/how-to-stop-cancel-suspend-resume-tasks-on-gcd-queue] You can't pause / cancel when using a GCD queue. If you need that functionality (and in a lot of general cases even if you don't) you should be using the higher level API - NSOperationQueue. This is built on top of GCD but it gives you the abili..

<ios 운영체제> 선점 스케줄링, 네트워크 멀티 태스킹, 네트워크 요청 처리 방법

결론부터 말하면, ios GCD로는 선점 스케줄링이 안되는거 같습니다. 그리고 네트워크 요청을 UrlSessionTask를 사용하는데, 그래서 이것을 resume, suspend, cancel을 통해 조절하는 방식으로 해보고자 하였습니다. 근데 문제는 async로 수행할 경우 suspend가 작동 안한다는 의견과 제 경험이 있었습니다...... [https://stackoverflow.com/questions/40662007/nsurlsessiontask-suspend-does-not-work/40663582#40663582] 그래서 cancel로 하면 그래도 된다는 의견인데, 제가 해보니 요청을 하고 중간에 cancel하면 요청했던 타임아웃으로 취소됩니다. 그런데 문제가 취소하자마자 실행한 새로운 요청..

<ios프로젝트2> GCD - Dispatch Queue 사용해 보자.

[https://magi82.github.io/gcd-01/] 이게 깔금한거 같다. DispatchQueue GCD를 사용하기전에 먼저 알아야 할 클래스가 있습니다. 바로 DispatchQueue라는 클래스인데요. 실제로 해야할 Task를 담아두면 선택된 스레드에서 실행을 해주는 역할을 합니다. DispatchQueue는 2가지로 종류로 나눌수 있습니다. Serial Dispatch Queue와 Concurrent Dispatch Queue입니다. Serial Dispatch Queue Serial Queue는 등록된 작업을 한번에 하나씩 차례대로 처리 합니다. 처리중인 작업이 완료되면 다음 작업을 처리합니다. Concurrent Dispatch Queue Concurrent Queue는 등록된 작업을 ..

<ios프로젝트2>뷰컨 참조해 보기, UIStoryBoard , LayoutSubView

class nDetailVC: UIViewController { var nview = DetailImgView() //MARK: - Model , 해당 클래스 스태틱 인스턴스로 옮기자. //var GalleryDetailInstance = GalleryDetail() override func viewDidLoad() { super.viewDidLoad() print("in viewDidLoad \(self)") in viewDidLoad public class DetailHttpElement{ //MARK: - 여기서 프로퍼티 옵저버 사용이 가능한가? 예제랑 조금 다른게, 여기 값들은 한개의 라벨에서만 사용되지 않을 수도 있긴하다. 용도가 다양할수도. var href = "" var productTitl..

<ios프로젝트2> Customizing Collection View Layouts

이걸 시도해 보려 한다. [https://developer.apple.com/documentation/uikit/uicollectionview/customizing_collection_view_layouts] 일단 엄청 길다. 결론부터 말하면, 너무 길어서 이해가 힘들어 일단 보류 했다. Overview To lay out UICollectionView cells in a simple grid, you can use UICollectionViewFlowLayout directly. For more flexibility, you can subclass UICollectionViewLayout to create advanced layouts. uicollectionView 셀들을 간단한 그리드로 표현하려면,..

<ios프로젝트2> prepare vs 메모리에 직접 저장(객체)

prepare는 한 뷰컨트롤러에서 다른 뷰컨으로 넘겨주는건데, 음 이게 한 객체에서 다른 객체로 넘겨주는 개념인거 같은데 그럼 한 뷰컨에서 다른 모델에 저장했다가 다른 뷰컨에서 저장한 모델 값을 가져오는거랑 결과는 같고, 원리도 같은건가?? Instance Method prepare(for:sender:) Notifies the view controller that a segue is about to be performed. 음 근데 문서를 읽어보니, 디폴트는 미리 준비하는 목적이 아니라 어쨋든 해당 새그가 일어나기 전에 호출되는 개념이다. Discussion The default implementation of this method does nothing. Subclasses override this ..