Screenshots
Code
struct ContentView: View {
MARK
var library: URL? {
FileManager.default.urls(for: .libraryDirectory, in: .userDomainMask).first
}
var preferences: URL? {
library?.appendingPathComponent("Preferences")
}
var userDefaultsPlist: URL? {
guard let preferences,
let bundleIdentifier = Bundle.main.bundleIdentifier else {
return nil
}
return preferences.appendingPathComponent(bundleIdentifier).appendingPathExtension("plist")
}
@AppStorage("text") var text = "sample string"
MARK
var body: some View {
VStack(alignment: .leading) {
TextField("Enter your text", text: $text)
GroupBox("UserDefaults value") {
Text(text)
}
Button("Reset UserDefaults") {
if let appDomain = Bundle.main.bundleIdentifier {
UserDefaults.standard.removePersistentDomain(forName: appDomain)
}
}
.frame(maxWidth: .infinity, alignment: .trailing)
Divider()
GroupBox("UserDefaults path") {
Text("\(userDefaultsPlist?.path ?? "")")
}
Button("Show in Finder") {
if let userDefaultsPlist,
FileManager.default.fileExists(atPath: userDefaultsPlist.path) {
NSWorkspace.shared.selectFile(userDefaultsPlist.path,
inFileViewerRootedAtPath: "")
}
}
.frame(maxWidth: .infinity, alignment: .trailing)
}
.textSelection(.enabled)
.padding()
}
}
References