본문 바로가기

코틀린 멀티플랫폼 KMP 개발/📚 KMP 공부2

Kotlin Native (iOS) 부분에서 Error 받아내는 CPointer 만들기 종종 이런 부분과 같이 error를 CPointer로 받는 아이들이 있는데, 어떻게 할당하고 받아오는지 당최 모를 때가 많았다. 이 때문에 블로그에 따로 정리를 하려고 한다. 먼저 메모리 할당을 위해서는 `memScoped` 블록을 만들어 주어야 한다.이후 타입에 따라 다음과 같은 CPointer를 만들어준다.val error = interpretCPointer>(alloc(sizeOf>(), alignOf>()).rawPtr) 이후 이 포인터를 요하는 곳에 `error`를 넣어준다. 그러면 이 값을 어떻게 받는가?val err = error?.pointed?.value // NSError 가져오기println("Copy failed: ${err?.localizedDescription ?: "Unkno.. 2025. 2. 22.
[KMP iOS] 시스템 사운드를 가져올 때 시스템 사운드를 가져올 때Kotlin Multiplatform에서, Swift 언어를 사용하지 않아도 많은 부분의 네이티브 코드를 Kotlin으로 작성할 수 있는 것 같다.현재 개발 중인 캘람 iOS 부분에서는 시스템 사운드를 사용해야 된다고 생각했는데 코틀린에서는 포인터 개념이 없거나 적고, 스위프트는 그런 개념이 있어서 스위프트 코드를 그대로 사용하는 데 많은 검색이 필요했다.해당 내용을 간략하게 메모 겸 저장한다.AudioServicesCreateSystemSoundIDvar myAlertSound: SystemSoundID = 0let url: URL = URL(string: "/System/Library/Audio/UISounds/Tock.caf")!AudioServicesCreateSystem.. 2024. 8. 16.