-
Notifications
You must be signed in to change notification settings - Fork 336
7.1 NSUserDefaults, Settings Bundle
Preferences and Settings Programming Guide
NSUserDefaults Class Reference
Settings Application Schema Reference
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 などの情報はこのファイルに保存しないようにしてください。
iPhone の setting app 内に開発中のアプリの設定項目を追加することが出来ます。
ファイル追加画面で Settings Bundle を選びます。
この状態でビルドすると、設定アプリの中に開発中のアプリが表示されます。
この中の Root.plist を編集することで設定画面の項目を編集することが出来ます。 設定項目については公式リファレンスをご確認ください。 Settings Application Schema Reference
Root.plist の子ページを作りたい場合は、新たに plist ファイルを作成して、Settings.bundle のルートディレクトリに配置します。
まず、新規ファイルで property list を選択し、作成します。
次にファイルシステムの方で追加した plist を Settings.bundle の中に移動します。Finder で移動する場合は下の図のようにしてください。コマンドラインでする方が早いです。
Root.plist に子設定画面に移動するように plist を追加してみます。
追加したデータのタイプを child pane にします。Title はセルのテキスト、Filename は遷移する plist のファイル名を指定します。
最後に追加した plist の設定を行います。その際に iphone setting plist というタイプに変更すると編集しやすくなります。
ポイント
このような静的なメニューを TableView で作成する際には plist ファイルで必要項目を作成して、viewController でその plist を読み込むだけで TableView を生成するようにすると運用が楽になります。
子の設定画面で下の図の表示になるように実装してください。
Setting app で設定した項目は NSUserDefaults を使用してアプリ内でアクセスすることが可能になります。
plist で設定した Identifier (Key) を指定して NSUserDefaults から参照すると取得することができます。
Setting bundle に textField を追加した、settings app から設定した値を取得してみましょう。
はじめに
-
導入
-
1.3 UIViewController1 UIViewController のカスタマイズ(xib, autoresizing)
-
UIKit 1 - container, rotate-
-
UIKit 2- UIView -
-
UIKit 3 - table view -
-
UIKit 4 - image and text -
-
ネットワーク処理
-
ローカルキャッシュと通知
-
Blocks, GCD
-
設計とデザインパターン
-
開発ツール
-
テスト
-
In-App Purchase
-
付録