Skip to content

Instantly share code, notes, and snippets.

View godrm's full-sized avatar

Jung Kim godrm

  • Codesquad
  • Seoul, KOREA
  • X @godrm
View GitHub Profile
@godrm
godrm / LineFactory.swift
Created April 6, 2022 10:51
HelloPlane 심볼 예제
import Foundation
class LineFactory {
static var lineCount : Int = 0
static func makeLine() -> Line {
return Line()
}
class func randomLine() -> Line {
let line = Line()
@godrm
godrm / 1MemoryDump.swift
Last active September 4, 2023 04:35
Swift Variable Address Dump to console
struct Memory {
static func dump<T>(variable: inout T) {
withUnsafePointer(to: &variable) { print($0) }
}
static func dump(with: UnsafeRawPointer) {
let address = Int(bitPattern: with)
print(String(format:"%p", address))
}
@godrm
godrm / AsyncFunc+objc.m
Created November 8, 2020 03:49
AsyncFunc by Objective-C
typedef void (^AVAssetImageGeneratorCompletionHandler)(CMTime, CGImageRef _Nullable, CMTime, AVAssetImageGeneratorResult, NSError * _Nullable);
// ...
- (void)generateCGImagesAsynchronouslyForTimes:(NSArray<NSValue *> *)requestedTimes
completionHandler:(AVAssetImageGeneratorCompletionHandler)handler;
@godrm
godrm / RacyActor+Phase2.swift
Created November 8, 2020 03:46
RacyActor Phase#2
var racyGlobal: [String] = []
@MyGlobalActor
var safeGlobal: [String] = []
class PlainOldClass {
var unprotectedState: String = []
}
actor class RacyActor {
@godrm
godrm / MyActor+phase1.swift
Created November 8, 2020 03:45
MyActor Phase#1
actor class MyActor {
let immutable: String = "42"
var mutableArray: [String] = []
func synchronousFunction() {
mutableArray += ["syncFunction called"]
}
}
extension MyActor {
@godrm
godrm / Dinner.swift
Created November 8, 2020 03:43
Dinner Task
func makeDinner() async throws -> Meal {
async let veggies = try chopVegetables()
async let meat = marinateMeat()
async let oven = try preheatOven(temperature: 350)
let dish = Dish(ingredients: await [veggies, meat])
return await try oven.cook(dish, duration: .hours(3))
}
@godrm
godrm / PlayerRefreshController+UIActor.swift
Created November 8, 2020 03:41
PlayerRefreshController UIActor 클래스
@UIActor
class PlayerRefreshController {
var players: [String] = []
var gameSession: GameSession
func refreshPlayers() async { ... }
}
@godrm
godrm / PlayerRefreshController+actor.swift
Created November 8, 2020 03:40
PlayerRefreshController Actor 클래스
actor class PlayerRefreshController {
var players: [String] = []
var gameSession: GameSession
func refreshPlayers() async { ... }
}
@godrm
godrm / PlayerRefreshController.swift
Created November 8, 2020 03:38
PlayerRefreshController 클래스
class PlayerRefreshController {
var players: [String] = []
var gameSession: GameSession
var refreshQueue = DispatchQueue(label: "PlayerRefresh")
internal func refreshPlayers(completion: (() -> Void)? = nil) {
refreshQueue.async {
self.gameSession.allPlayers { players in
self.players = players.map(\.nickname)
completion?()
import Cocoa
var str = "Hello, playground"
let ptr = UnsafeRawPointer(str)
let origin = CGPoint(x: 0, y: 0)
var other = origin
other.x += 10
var another = origin
another.y += 5