๋ชฉ๋ก๐ฑ๐ iOS/Code Templates (8)
Bibi's DevLog ๐ค๐
Queue๋ฅผ ๊ตฌํํ๋ ๋ค์ํ ๋ฐฉ์๋ค. Queue ๊ตฌํํ๊ธฐ - (1) ๋ฐฐ์ด ๊ฐ์ฅ ์ฝ์ง๋ง ๊ฐ์ฅ ์ถ์ฒํ์ง ์๋ ๋ฐฉ๋ฒ struct Queue: CustomStringConvertible { private var elements: [T] = [] public init() {} var isEmpty: Bool { elements.isEmpty } var peek: T? { elements.first } var description: String { if isEmpty { return "Queue is empty..." } return "---- Queue start ----\n" + elements.map({"\($0)"}).joined(separator: " -> ") + "\n---- Queue End ----..
๋ฐฐ์ด๋ก ๊ตฌํํ Swift์ Stack struct Stack { fileprivate var array: [Element] = [] var isEmpty: Bool { return array.isEmpty } var count: Int { return array.count } mutating func push(_ element: Element) { array.append(element) } mutating func pop() -> Element? { return array.popLast() } func peek() -> Element? { return array.last } } extension Stack: CustomStringConvertible { var description: String { le..
LinkedList ํ์ node(at:) : ๋ฆฌ์คํธ์ ํน์ ์์น์ ๋ ธ๋ ์ฐพ๊ธฐ. O(i) count() : ๋ฆฌ์คํธ์ ๋ ธ๋์ ์ ๋ฐํ. O(n) ์ฝ์ push(_:) : ๋ฆฌ์คํธ์ ๋งจ ์์ ๋ ธ๋ ์ฝ์ . O(1) append(_:) : ๋ฆฌ์คํธ์ ๋งจ ๋ค์ ๋ ธ๋ ์ฝ์ . O(1) insert(_:after:) : ๋ฆฌ์คํธ์ ํน์ ์ธ๋ฑ์ค์ ๋ ธ๋ ์ฝ์ . O(n) ์ญ์ pop() : ๋ฆฌ์คํธ์ ๋งจ ์์ ๋ ธ๋ ์ญ์ . O(1) removeLast() : ๋ฆฌ์คํธ์ ๋งจ ๋ค์ ๋ ธ๋ ์ญ์ . O(n) remove(after:) : ๋ฆฌ์คํธ์ ํน์ ์ธ๋ฑ์ค์ ๋ ธ๋ ์ญ์ . O(n) removeAll() : ๋ฆฌ์คํธ์ ๋ชจ๋ ๋ ธ๋ ์ญ์ . O(1) import Foundation class Node: CustomStringConvertible, Eq..
์ฐธ๊ณ ํ ๊ณต์ ๋ฌธ์ : https://developer.apple.com/documentation/uikit/views_and_controls/table_views/asynchronously_loading_images_into_table_and_collection_views ํด์ : ๋น๋๊ธฐ์ ์ผ๋ก ํ ์ด๋ธ๋ทฐ, ์ปฌ๋ ์ ๋ทฐ์ ์ด๋ฏธ์ง ๋ก๋ํ๊ธฐ Asynchronously Loading Images into Table and Collection Views UICollectionView๋ฅผ ๊ตฌํํ๋ฉฐ ์ ๋ง๋ค ์ด๋ฏธ์ง๋ฅผ API์์ ๋ฐ์์ค๋ ์์ ์ ํ๋ค. ์คํฌ๋กค์ด ๋ ๋๋ง๋ค ๊ฐ์ ์ด๋ฏธ์ง๋ฅผ ๋ฐ๋ณตํด์ ์์ฒญํด์ผ ํ๋๋ฐ, ์ด ๋ API์ ์ฌ๋ฌ ๋ฒ ๋ฐ๋ณตํด์ ์์ฒญ์ ๋ณด๋ด๊ฒ ๋๋ฏ๋ก ๊ฐ์ ๋์์ ์ฌ๋ฌ ๋ฒ ํ๋ ๋ญ๋น์ด๊ธฐ๋ ํ๊ณ , ์ต์ ์ ๊ฒฝ์ฐ AP..
import UIKit class AnyView: UIView { static let identifier = "AnyView" private let anyLabel: UILabel = { var label = UILabel() return label }() override init(frame: CGRect) { super.init(frame: frame) setUI() setConstraint() } required init?(coder: NSCoder) { super.init(coder: coder) setUI() setConstraint() } private func setUI() { self.addSubview(anyLabel) } private func setConstraint() { // set..
https://hryang.tistory.com/23 ๋จผ์ ์ํ๋ ํฐํธ ํ์ผ์ ๋ค์ด๋ก๋๋ฐ๊ณ , ํ๋ก์ ํธ์ ํฌํจ์ํค๊ณ , Info.plist์ ๋ฑ๋กํด ์ฃผ์ด์ผ ํ๋ค. ์ ๋งํฌ๋ฅผ ์ฐธ๊ณ ํ๋ค. ์ดํ ํฐํธ ํ์ผ์ ์ด๋ฆ(ํ์ฅ์ ์ ์ธ)์ UIFont(name:)์ผ๋ก ์ง์ ํ๋ค. import UIKit enum CustomFont { case santanaBlack } extension UIFont { static func customFont(_ name: CustomFont) -> UIFont { switch name { case .santanaBlack: // set font and size you want return UIFont(name: "Santana-Black", size: 32) ?? UIFont() } } }
UIColor extension์ผ๋ก ๊น๋ํ๊ฒ ํํํ๊ธฐ ๋ค์ํ UIColor ์ง์ ์์์ ์ต์คํ ์ ์ผ๋ก ๋ถ๋ฆฌํด ๋ณด๋ผ๊ณ ํด์ ์ฐพ์๋๋ฐ, ์ข์ ๋ฐฉ๋ฒ์ธ ๊ฒ ๊ฐ๋ค. init : rgb ์ํ ๊ธฐ๋ณธ๊ฐ์ 1๋ก ์ง์ ํ๋ convenience init customColor : ์ง์ ๋ ์์์ colorLiteral๋ก ํํ // // UIColorExtension.swift // starbuckst // // Created by Bibi on 2022/05/11. // import UIKit enum CustomColor { case white } extension UIColor { convenience init(red: Int, green: Int, blue: Int, a: Int = 1) { self.init( red: C..
220426 [Swift] JSON API์ ๋คํธ์ํฌ ํต์ ํ๊ธฐ 1. HTTPManager (URLManager) ๋ง๋ค๊ธฐ HTTP ์์ฒญ์ ๋ณด๋ด๊ณ ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ๋ ์ญํ . URLSession URL completionHandler : '์๋ฃ ์ฒ๋ฆฌ๊ธฐ' HTTPManager import Foundation import os // HTTP ์์ฒญ์ ๋ณด๋ด๊ณ , ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ๋ ์ญํ final class HTTPManager { static func requestGET(url: String, complete: @escaping (Data) -> ()) { // complete @escaping : ํด๋ก์ ๊ฐ ๋ฐ๋ก ์คํ๋์ง ์๊ณ , ์กฐ๊ฑด์ ํด๋น๋ ๋ ํด๋ก์ ๊ฐ ์คํ๋จ guard let validURL = URL(s..