본문 바로가기

프로그래밍/SWIFT

(32)
[SWIFT] dump() 함수 출력을 문자열로 바꾸는 방법 dump 함수는 클래스 인스턴스의 내부 속성까지 간단히 출력해 주기 때문에 디버깅시에 편리하다. 그런데, 출력 내용을 문자열로 저장하여, stdout, stderr 가 아닌 곳으로도 출력/저장하고 싶었다. 스택오버플로우에 간단한 답변이 있었다. https://stackoverflow.com/a/42094841/100093 let myClass = MyClass() var myClassDumped = String() dump(myClass, to: &myClassDumped) https://github.com/apple/swift/blob/master/stdlib/public/core/OutputStream.swift 위 링크를 인용하고 있는데, 직접 영문설명을 읽어보는 게 좋겠지만, 요약하면, print..
[XPC] 새로운 타겟에서 xpc service 사용하기 Error Domain=NSCocoaErrorDomain Code=4099 xpc service 를 만들었다. xpc service 를 사용해야 하는 어플리케이션 타겟을 만들어, 기존에 만든 xpc service 의 함수를 호출하려 했다. 그런데, 함수호출을 했는데도, 서비스와의 연결이 실패했다는 에러가 발생하였다. Received error: Error Domain=NSCocoaErrorDomain Code=4099 "The connection to service named com.xxxx.xxxxxpc was invalidated: failed at lookup with error 3 - No such process." UserInfo={NSDebugDescription=The connection to service named com.xxxx.xxxxxpc was inval..
[Swift|번역] Process waitUntilExit 은 비동기 completion handler 와 같이 쓰지 않는다. https://stackoverflow.com/a/49541564 동기함수인 waitUntilExit() 은 비동기적 completion handler 와는 같이쓰기 어렵다. 비동기 completion handler 를 사용한다면, exit 을 기다리는 건 의미없는 일이다. --- pipe의 fileHandleForReading 을 클로져에서 사용하기 때문에 double free 에러가 발생하는 것일 수 있다. stdout 을 동기적으로 읽으라.
[Swift] SwiftyXMLParser 를 이용해 xml 트리구조 보기 Swift 의 XML 라이브러리들 중에서, SwiftyXMLParser 라는 라이브러리가 있다. 파이썬의 xmltodict 처럼, 임의의 xml 을 좀 간단하게 파싱해주는 라이브러리이다. 파싱된 xml 의 트리구조를 간단히 보고 싶었는데, 트리구조를 보여주는 예제가 없어서, 만들어 보았다. import Foundation import SwiftyXMLParser func xmlPrint(_ xml: XML.Accessor, _ nIndent: Int = 0, _ seqIndex: Int = -1) { var indent : String { String(repeating: " ", count: nIndent) } switch(xml) { case .singleElement(let element) : if ..
[Swift] error: concurrency is only available in macOS 10.15.0 or newer async, await 를 간단하게 테스트해 보기 위해서, swift package manager 프로젝트를 만들고, 아주 간단한 await, async 예제를 실행해보려 했다. swift package init --type "executable" 로 프로젝트를 만들고, main.swift 를 program.swift 로 바꾸고, 예제 코드를 입력하고, swift build 를 빌드 테스트를 했다. 우선 ubuntu swift 5.6 환경에서는 성공을 했던 코드였는데, 컴파일 에러메시지가 나왔다. /Users/mememe/07_swift_test_projects/asyncawait_pm/Sources/asyncawait_pm/program.swift:24:29: error: concurrency is o..
100DaysOfSwiftUI - Day 26 Stepper Date, Calendar Create ML : 아주 간단한 회귀모델을 만드는 튜토리얼. 코드 없이 csv파일 선택하고 타겟변수 선택하고 독립변수 선택하여 트레이닝. 선형회귀, 랜덤포레스트 등등 모델을 선택할 수 있음. 만들어진 모델은 바이너리 파일로 만들어지고 이걸 프로젝트에서 임포트하여 사용하는 듯. https://daewonyoon.tistory.com/440
Swift on Ubuntu error: cannot find 'URLRequest' in scope wsl2 + ubuntu20.02 Swift version 5.6.2 (swift-5.6.2-RELEASE) $ swift build Building for debugging... /mnt/d/nlgokr_packman/Sources/nlgokr_packman/main.swift:44:19: error: cannot find 'URLRequest' in scope let request = URLRequest(url: url) mac os 에서는 아무 문제없이 동작하는 코드였는데, ubuntu20.02 swift version 5.6 에서 빌드하였더니 다음과 같은 에러메시지가 발생했다. 문제는 ubuntu 버전의 swift 에서는 URLRequest 가 Foundation 이 아닌, 분리되어 있는 Foun..
Swift on WSL swift repl 에 진입할 때 행이 걸리는 문제. 윈도우 시스템에 wsl 을 설치하고, ubuntu 를 설치했다. (2022년 7월 15일) 여기에서 swift 연습을 해보기 위해서 swift 설치과정을 진행해서 설치가 되었는데 ( apt 명령으로 디펜던시 패키지들을 설치하고, swift ubuntu 20.04 용 릴리즈 tar 파일을 받아서 풀고, PATH 변수 설정해주기까지 ) swift 명령이 어떤 건 행이 걸려서 동작을 안했다. 1. swift 명령만 실행하여 repl 에 들어가려 하면 멈춘다. $ swift Swift version 5.6.2 (swift-5.6.2-RELEASE) Target: x86_64-unknown-linux-gnu Welcome to Swift! Subcommands: swift build Build Swift pack..