본문 바로가기

Xcode

(7)
[SWIFT] 'main' attribute cannot be used in a module contains top-level code xcode 에서 macos cli 어플리케이션을 swift 언어로 생성하고, main.swift 에 다음과 같이 코딩했다.import Foundation@mainstruct cli_test { static func main() async { print("Hello, World!") }}@main 부분에 'main' attribute cannot be used in a moudle that contains top-level code 라는 빨간색 에러 메시지가 떴다.검색하여, main.swift 의 이름을 다른 이름으로 바꾸어 ( myprogram.swift ) 준 이후에 에러가 사라졌다.main.swift 안에 @main 이 오면 이 에러 메시지가 발생한다.https://medium.com/@..
macOS Xcode 에서 한글입력 특이사항 간단하게 이름과 나이를 입력받아 출력해 주는 C 프로그램이다. 간단히 실행한 내용은 다음과 같다. 이름을 입력하세요. : 홍길녀 나이를 입력하세요. : 18 나의 이름은 홍길녀 이고, 나이는 18 입니다. 이름의 바이트 길이는 24. 이름[00:03] = e1 84 92 = ᄒ 이름[03:06] = e1 85 a9 = ᅩ 이름[06:09] = e1 86 bc = ᆼ 이름[09:12] = e1 84 80 = ᄀ 이름[12:15] = e1 85 b5 = ᅵ 이름[15:18] = e1 86 af = ᆯ 이름[18:21] = e1 84 82 = ᄂ 이름[21:24] = e1 85 a7 = ᅧ 리눅스 등에서 일반적으로 utf-8 의 한글은 한음절이 3바이트로 인코딩되는데, 위 결과를 보면, 자모 하나 당..
[Swift] publishing changes from background threads is not allowed; make sure to publish values from the main thread swiftui 에서 async 콘텍스트에서 UI 와 관련된 변수를 업데이트할 때 발생한다. xcode에서 보라색으로 나타나는 워닝이다. UI 관련 변수를 업데이트할 때에는 main 쓰레드에서 업데이트 될 수 있도록, await MainActor.run { } 블록으로 감싸주어야 한다. 이 방법은 이전에 사용하던 DispatchQueue.main 을 대체하는 방식이다. 이 방법도 가능하지만, 더 아름다운 방식은, @MainActor 어노테이션을 사용하는 것. 해당 변수를 업데이트하는 코드가 들어있는 함수 선언에 어노테이션을 더해준다. @MainActor func uiUpdateFunc() - ref : Modern Concurrency in Swift Chapter 1, 2
Xcode 프로젝트 안의 타겟들 한꺼번에 빌드하기 https://stackoverflow.com/a/69228719/100093 Xcode - Building for Multiple Targets Simultaneously I have one Xcode project with multiple targets. During development, it is becoming laborious to compile and install each separately. Is there a way, through scripting or otherwise; that I can auto... stackoverflow.com Xcode 메뉴 중 Product > Scheme > Manage Schemes 을 보면 자동으로 만들어진 스킴들을 볼 수 있음. 액티브 스킴 편집으..
[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..
100DaysOfSwiftUI - Day 26 Stepper Date, Calendar Create ML : 아주 간단한 회귀모델을 만드는 튜토리얼. 코드 없이 csv파일 선택하고 타겟변수 선택하고 독립변수 선택하여 트레이닝. 선형회귀, 랜덤포레스트 등등 모델을 선택할 수 있음. 만들어진 모델은 바이너리 파일로 만들어지고 이걸 프로젝트에서 임포트하여 사용하는 듯. https://daewonyoon.tistory.com/440
XCode 프로젝트에 써드파티 패키지 추가하기 처음하다 보니까 라이브러리 가져다가 쓰는 것도 어려웠다. 라이브러리의 소개페이지에 설치해서 사용하는 방법들이 너무 여러가지를 기준으로 설명이 되어 있었다. swift package manager, cocoapods, carthage... 모두 커맨드라인에서 어떻게 하는 방법인데, 나는 xcode 프로젝트에 포함해서 쓰고 싶었다. 프로젝트 설정 쪽에 package 관리하는 곳이 있었고, package 추가하면 창이 뜨고 쭉 하면 되더라. 간단한 건데, 혹시 나처럼 헤맬 사람들을 위해 캡쳐화면을 떠서 포스팅을 작성한다. xcode 13 이다.