반응형

ios 129

[iOS, Swift] DFS 전위, 중위, 후위 탐색

iOS 16.1, Xcode 14.1, Swift 5, UIKit 환경에서 진행했습니다. class Node { var nodeData: Int? var lt: Node? var rt: Node? init(value: Int) { nodeData = value lt = nil rt = nil } } var tree: Node = Node(value: 1) tree.lt = Node(value: 2) tree.rt = Node(value: 3) tree.lt?.lt = Node(value: 4) tree.lt?.rt = Node(value: 5) tree.rt?.lt = Node(value: 6) tree.rt?.rt = Node(value: 7) // 전위순회 func DFS_전위(root: Node?)..

iOS/알고리즘 2023.02.12

[iOS, Swift] Swift 문법 compactMap 예제

iOS 16.1, Xcode 14.1, Swift 5, UIKit 환경에서 진행했습니다. nil 값을 가질 수 있는 객체를 뜻하는 Optional은 값을 감싸고 있는 객체입니다.compactMap은 이러한 감싸고 있는 객체를 제거하고 평평하게 (flatMap으로 쓰였으나, 스위프트 4버전 이후로 compactMap으로 불립니다.) 만든 후 컨테이너로 감싸주는 역할을 합니다. let optionalIntArray = [Optional(1), Optional(2), nil, Optional(3)] let result = optionalIntArray.compactMap({$0}) print(result) // [1, 2, 3]

iOS/문법 2023.02.09

[iOS, Swift] Swift 문법 Reduce 예제

iOS 16.1, Xcode 14.1, Swift 5, UIKit 환경에서 진행했습니다. 컨테이너에서 사용할 수 있는 Reduce 함수는 두가지 종류가 있습니다. initialResult와 nextPartialResult를 쓰는 함수는 초기값이 initialResult에 들어가고 nextPartialResult에 값이 업데이트 되는 함수입니다. let sum1 = [1, 2, 3].reduce(0) { partialResult, next in // partialResult = 0, next = 1 // partialResult = 1, next = 2 // partialResult = 3, next = 3 return partialResult + next } 결과로는 sum1 변수에 6이 저장됩니다. i..

iOS/문법 2023.02.07

[iOS, Swift] UIRefreshControl 예제

iOS 16.1, Xcode 14.1, Swift 5, UIKit 환경에서 진행했습니다. UIRefreshControl은 UIScrollView를 상속받는 곳에 사용이 가능합니다. 테이블뷰와 콜렉션뷰에서도 사용가능합니다. 이 컨트롤을 추가하면 사용자는 일반적으로 새로고침하는 것 같은 느낌을 줍니다. scroll 가능한 공간을 아래로 내릴때, refresh 화면을 띄어줍니다. var refreshControl = UIRefreshControl() override func viewDidLoad() { super.viewDidLoad() tableView.dataSource = self tableView.delegate = self tableView.refreshControl = refreshControl r..

iOS/코드조각 2023.02.05

[Library, Metal] 삼각형 그리기 (pipeline)

iOS 16.1, Xcode 14.1, Swift 5, Playground 환경에서 진행했습니다. 삼각형의 좌표를 저장하는 [Float] 배열을 만들고, 삼각형의 좌표를 구성하는 Buffer를 생성합니다. let vertices: [Float] = [ 0, 1, 0, -1, -1, 0, 1, -1, 0 ] let vertexBuffer = device.makeBuffer(bytes: vertices, length: vertices.count * MemoryLayout.size) Shader Function은 GPU를 돌리기 위한 작은 프로그램입니다. Shader Function을 작성하기 위하여 Metal Shading Laungage(MSL)을 사용해야합니다. MSL은 C++로 구성되어 있습니다. .m..

iOS/라이브러리 2023.02.03
반응형