環境
xcode 11.3
swift 5.1.3
CocoaPods 1.8.4
方針
@noby111さんの記事「Swifterを自分のアプリに組み込む方法」を参考にしていた時に以下の方法がさらっと用いられていていいなと思ったので、これだけでまとめました。
AppStatusクラスを作って、クラス変数にアクセスする方法でuserDefault内のデータにアクセスできるようにする
let appData = AppStatus()
//データの入力
appData.username = "test user"
// データの出力
print(appData.username)
出力
test user
実装
AppStatus.swiftファイルを新たに作成し、以下を記述
AppStatus.swift
import Foundation
import UIKit
class AppStatus {
var userdefault = UserDefaults.init(suiteName: "app_status")!
// usernameの設定
var username : String? {
get {
if let username : String = userdefault["username"] {
return username
} else {
return nil
}
}
set {
userdefault["username"] = newValue
}
}
}
extension UserDefaults {
subscript<T: Any>(key: String) -> T? {
get {
if let value = object(forKey: key) {
return value as? T
} else {
return nil
}
}
set(_newValue) {
if let newValue = _newValue {
set(newValue, forKey: key)
} else {
removeObject(forKey: key)
}
synchronize()
}
}
}
usernameの部分と型を変更すればuserDefaulに保存可能な任意のデータ型を扱うことができる。
これ便利。
userDefaultsの使い方
ちなみに、userDefaultとはなんぞや、とかどうやって使うの、とかは以下の記事が参考になりました。