macOS Appの場合App起動前に、SQLite3のDBからデータを取り出す処理に失敗した時にApple Scriptのdisplay dialogを使って失敗を通知できる。ネットを漁って見つけたコードを残して置く。
import Foundation
func alert(_ arg: String) {
let myAppleScript = """
tell application (path to frontmost application as text) to display dialog "\(arg)" buttons {"OK"} with icon stop
"""
let process = Process()
process.launchPath = "/usr/bin/osascript"
process.arguments = ["-e","\(myAppleScript)"]
process.launch()
}
let myMsg = "can't find database."
alert(myMsg)
How to Trigger an Alert Dialog Pop-Up from Command Line in Mac OS – TechSpace Help Center)
Swift调用AppleScript脚本和Shell脚本 - 习七)
- dialogでY/Nを答えたり、テキストボックスを表示して文字列を受け取ったり出来る。
nameChack () {
nameFlg=$(osascript << EOF
display dialog "あなたのお名前は ${name} で間違いないですか?" with title "じゃんけんゲーム" with text buttons {"いいえ","はい"} default button 2
button returned of result
EOF)
【Mac】Apple Scriptのdisplay dialogの練習がてらじゃんけんアプリを作ってみる #ShellScript - Qiita
@EnvironmentObjectプロパティーラッパーで修飾したオブジェクトをUserDefaults.standardを使って保存と呼び出しを行う例
import SwiftUI
// ユーザー設定を管理するクラス
class SettingsModel: ObservableObject {
@Published var username: String {
didSet {
saveToUserDefaults()
}
}
init() {
// 初期値はUserDefaultsから読み込み
self.username = UserDefaults.standard.string(forKey: "username") ?? "ゲスト"
}
private func saveToUserDefaults() {
UserDefaults.standard.set(username, forKey: "username")
}
}