この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
ただいま基本動作を絶賛学習中です。
データ保存
アプリを作成しているとデータを永続化して保存する(アプリを終了しても保存されている)ことは、ほぼ必須の基本的実装だと思います。
iOSには、データを保存する方法としてはプロパティリストや、NSUserDefaults、CoreDataなど、いろいろと方法があります。
まずは、入門ということで使用頻度が高く、実装が容易なNSUserDefaultsをSwiftで実装してみます。
プロジェクト作成
SingleView Application でプロジェクトを作成します。
作成したプロジェクトのMain.storyboardを開き、以下のようにオブジェクトを配置しました。
続いて、controlキー + ドラッグ&ドロップでsaveボタン、loadボタンのactionを設定します。
最後に、TextFieldと、Labelのオブジェクトも紐づけておきます。
先ほどのボタンと同様に controlキー + ドラッグ&ドロップで設定します。
ViewControllerのコードが以下のようになりました。
class ViewController: UIViewController {
// TextFieldのアウトレット
@IBOutlet weak var textField: UITextField!
// Labelのアウトレット
@IBOutlet weak var label: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
// saveボタンのアクション
@IBAction func saveButton(sender: AnyObject) {
}
// loadボタンのアクション
@IBAction func loadButton(sender: AnyObject) {
}
}
テキストデータの保存と読み出し
動作としては、saveボタンを押したらTextFieldの文字列が保存されて、loadボタンを押したらlabelに表示されるという動作を想定しています。
それでは、実際にNSUserDefaultsを使ってデータの保存処理をしてみます。 saveButton()を以下のように書き換えます。
[Swift] // saveボタンのアクション @IBAction func saveButton(sender: AnyObject) { // データ保存処理
// NSUserDefaultsインスタンスの生成 let userDefaults = NSUserDefaults.standardUserDefaults()
// キー: "saveText" , 値: "
} [/Swift]
つぎに、読み込み処理としてloadButton()を以下のように書き換えます。
[Swift] // loadボタンのアクション @IBAction func loadButton(sender: AnyObject) { // データ読み込み処理
// NSUserDefaultsインスタンスの生成 let userDefaults = NSUserDefaults.standardUserDefaults()
// キーが"saveText"のStringをとります。 var loadText : String! = userDefaults.stringForKey("saveText")
// labelに表示 label.text = loadText
} [/Swift]
実行してみると、保存と読み込みができていることが確認できました。
また、アプリを終了しても保存されている事を確認できました。
以上です。