CollectionViewCell들 간의 Drag & Drop 구현하기
·
UIKit
반갑습니다 집주인 Kyxxn 박효준입니당이번에는 CollectionView에서 Cell들 간의 Drag & Drop을 구현해볼 건데요,델리게이트들을 어떻게 사용했고 어떤 특성이 있는지 알아봅시당 문제 상황컬렉션 뷰의 셀들을 드래그 앤 드랍해야 할 일이 생겨서이에 대한 공부를 하고 정리해보려 한다 !문제 해결주요 메소드우리는 아래의 두 델리게이트 프로토콜을 사용할 것이고,델리게이트에서 총 3개의 메소드를 사용하여 드래그 앤 드랍을 구현할 거다.UICollectionViewDragDelegateUICollectionViewDropDelegate시작: collectionView(_:itemsForBeginning:at:)먼저 Drag 델리게이트의 메소드이다.처음 드래그가 시작될 때 호출되는 메소드로 말 그대로..
Test가 Serial하지 않군요!
·
Swift
안녕하세요... 임정현입니다...SwiftTesting 테스트 하다가 병렬 수행이 원인이 되었습니다...그래서 Serial하게 동작하는 방식을 찾고 공유드리고자 합니다.문제 상황파일 시스템을 테스트를 해야하는데… 아니 왜자꾸 뭐 됐다~~ 안됐다~~~ 하는 것이느냐…내 로직은 완벽하다고!!문제 해결그렇습니다파일을 읽고 쓰다 하다보면 이런 일이 발생할 수 있죠…특히 Async환경에서는 더더욱 쉽습니다.그러면 어떻게 해야할까요? 사실 FileManager를 제가 만들때 의도한 것은 여러 스레드에서 병렬적으로 실행되기를 바랬습니다.그래야 UI를 막지 않고, 빠르게 일을 처리할 수 있으니까요.그런데 이는 하나의 파일에 대해 하나의 일을 시켰을 때의 경우입니다.Test처럼 하나의 파일에 대해 여러번 주작하게 되면 ..
Swift의 전역 변수 초기화 시점
·
Swift
반갑습니다 집주인들 팀원 박효준입니다!본편에서는 동시성에 대해 알아보다가 "Swift의 전역 변수 초기화 시점"의 신기한 점을 알게되어 공유드리고자 합니다!그럼 바로 시작하겠습니다~~문제 상황Swift Concurrency를 공부하며 스레드 안전성을 알아보던 중 흥미로운 얘기를 듣게 되었다.let logger = Logger( subsystem: "com.example.apple-samplecode", category: "Root View")위 전역변수 logger 코드는 언제 실행될까 ??전역변수니까 시작 시점에 초기화가 될까 ?답은 아니다. 왜 그런지 알아보자문제 해결C언어와 Objective-C의 전역변수C언어와 Objective-C에서의 전역변수는 시작 시점에 초기화가 되는 게 맞다.그..