Skip to content
This repository has been archived by the owner on Jun 20, 2023. It is now read-only.

7.1 NSUserDefaults, Settings Bundle

Koya Tamura edited this page May 14, 2013 · 13 revisions

Preferences and Settings Programming Guide

NSUserDefaults Class Reference

Settings Application Schema Reference

NSUserDefaults

NSUserDefaults はアプリケーション内にデータを永続化させるためのシンプルなインタフェースを提供しています。保存可能はインスタンスは NSData, NSString, NSNumber, NSDate, NSArray, NSDictionary です。

- (IBAction)pressSaveButton:(id)sender
{
    NSMutableArray *array = [NSMutableArray array];
    for (int i = 0; i < 10; i ++) {
        NSString *string = [NSString stringWithFormat:@"%d", i];
        [array addObject:string];
    }
    [[NSUserDefaults standardUserDefaults] setObject:array forKey:@"array"];
}

- (IBAction)pressReadButton:(id)sender
{
    NSLog(@"%@", [[NSUserDefaults standardUserDefaults] objectForKey:@"array"]);
}

console

MixiUserDefaultsSample[96760:c07] (
    0,
    1,
    2,
    3,
    4,
    5,
    6,
    7,
    8,
    9
)

注意

NSUserDefaults で保存した場合アプリ内の plist ファイルで保存されます。このファイルは特定のアプリケーションを使うと一般ユーザでも見ることが出来てしまいます。従ってパスワードや access token などの情報はこのファイルに保存しないようにしてください。

Settings Bundle

iPhone の setting app 内に開発中のアプリの設定項目を追加することが出来ます。

Settings.bundle の追加

ファイル追加画面で Settings Bundle を選びます。

add_setting_bundle

この状態でビルドすると、設定アプリの中に開発中のアプリが表示されます。

setting_app

この中の Root.plist を編集することで設定画面の項目を編集することが出来ます。 設定項目については公式リファレンスをご確認ください。 Settings Application Schema Reference

子ページの追加方法

child_plist

Preferences and Settings Programming Guide から引用

Root.plist の子ページを作りたい場合は、新たに plist ファイルを作成して、Settings.bundle のルートディレクトリに配置します。

まず、新規ファイルで property list を選択し、作成します。

add_property_list

次にファイルシステムの方で追加した plist を Settings.bundle の中に移動します。Finder で移動する場合は下の図のようにしてください。コマンドラインでする方が早いです。

show_package

Root.plist に子設定画面に移動するように plist を追加してみます。

add_row

追加したデータのタイプを child pane にします。Title はセルのテキスト、Filename は遷移する plist のファイル名を指定します。

add_child_pain

最後に追加した plist の設定を行います。その際に iphone setting plist というタイプに変更すると編集しやすくなります。

property_list_type

ポイント

このような静的なメニューを TableView で作成する際には plist ファイルで必要項目を作成して、viewController でその plist を読み込むだけで TableView を生成するようにすると運用が楽になります。

問題

子の設定画面で下の図の表示になるように実装してください。

Child

Settings bundle と UserDefaults

Setting app で設定した項目は NSUserDefaults を使用してアプリ内でアクセスすることが可能になります。

plist で設定した Identifier (Key) を指定して NSUserDefaults から参照すると取得することができます。

問題

Setting bundle に textField を追加した、settings app から設定した値を取得してみましょう。

はじめに

  1. iOSについて

  2. Xcode最初のステッフ

  3. 導入

  4. Objective C の基礎

  5. メモリ管理

  6. 1.3 UIViewController1 UIViewController のカスタマイズ(xib, autoresizing)

  7. 1.3 UIViewController1 UIViewController のカスタマイズ(storyboard)

  8. UIViewController2 - ModalViewController

  9. UIViewController2 - ModalViewController(storyboard)

  10. UIViewController3 - ライフサイクル

  11. HomeWork 1 Objective C の基本文法

  12. HomeWork 2 UIViewControllerとModalViewController

  13. HomeWork 3 UIViewController + Animation

  14. UIKit 1 - container, rotate-

  15. UINavigationController

  16. UITabController

  17. Custom Container View Controller

  18. Supporting Multiple Interface Orientations

  19. HomeWork 1 - タブバーからモーダルビューを表示する

  20. HomeWork 2 - NavigationController

  21. HomeWork 2.3 デバイスことに回転対応

  22. UIKit 2- UIView -

  23. UIView

  24. UIView のカスタマイズ

  25. UIView Animation

  26. HomeWork 1 - UIScrollView

  27. UIKit 3 - table view -

  28. UITableView について

  29. UITableViewとNavigationController

  30. custom UITableViewCell の作成

  31. UITableViewのその他のオプション、カスタマイズ

  32. HomeWork 1 - Dynamic height with a custom uitableviewcell

  33. UIKit 4 - image and text -

  34. UIImagePickerController

  35. Assets Library

  36. UITextFiled, UITextView

  37. KeyboardNotification

  38. Homework 1 - フォトの複数枚選択

  39. ネットワーク処理

  40. NSURLConnection

  41. JSONのシリアライズとデシリアライズ

  42. UIWebView

  43. ローカルキャッシュと通知

  44. NSUserDefaults, Settings Bundle

  45. NSFileManager

  46. Key Value Observing

  47. NSNotification、NSNotificationCenter を用いた通知

  48. UILocalNotification

  49. Blocks, GCD

  50. Blocks

  51. GCD

  52. 【演習】GCD,-Blocksを用いたHTTPリクエストマネージャの作成

  53. 設計とデザインパターン

  54. クラス設計 1

  55. クラス設計 2

  56. [クラス設計演習] (https://github.com/mixi-inc/iOSTraining/wiki/9.3-%E3%82%AF%E3%83%A9%E3%82%B9%E8%A8%AD%E8%A8%88%E6%BC%94%E7%BF%92)

  57. 開発ツール

  58. Instruments, デバッガ

  59. CocoaPods

  60. テスト

  61. iOS開発におけるテスト

  62. GHUnit

  63. Kiwi

  64. KIF

  65. In-App Purchase

  66. In-App Purchase

  67. 付録

  68. Tips of Xcode

  69. Auto Layout 入門

  70. Auto Layout ドリル

Edit sidebar

Clone this wiki locally