iOS開発メモの定数声明とNSUserDefaults

1824 ワード

もっと読む
iOSでは、定数宣言は通常2つの方式を使用します。
1、C言語を使用する前処理方式

 #define  APP_NAME @“demo”
 #define  kURL @“http://www.google.com”
2、externを使う  cnst cキーワード、externは変数がすでに宣言されていることを表しています。ただ参照してください。cnstは変数が定数であり、変更できないことを表しています。

extern NSString * const kURL;

NSString * const kURL = @"http://marshal.easymorse.com";
NSUser Defaults
NSUserDefaults類は、アプリケーション設定と属性、ユーザデータを保存するために使用されます。例えば、アプリケーションでユーザが使用する画像やデフォルトの色スキームを記憶することができます。これらのオブジェクトはiOSのいわゆる「defaultsシステム」に格納されている。iOSのdefaultsシステムは全体のアプリで利用できますので、defaultsシステムに格納されたデータもアプリケーションライフサイクル全体で利用できます。つまり、ユーザがプログラムをオフにしても、電源をオフにしても、ユーザが再度プログラムを開いても、または起動しても、これらのデータは依然として存在します。NSUserDefaultsが格納できるデータタイプは、
NSData
NSString
NSNumber
NSDate
NSAray
NSDictionary
UImageのような他のタイプを保存したい場合は、符号化するか、NSData、NSNumber、またはNSStringに変換するべきです。
NSUserDefaultsを見ると、あくまでも対象はdictionaryのデータ構造です。

NSDictionary* defaults = [[NSUserDefaults standardUserDefaults] dictionaryRepresentation];
NSLog(@"Defaults: %@", defaults);
NSUserDefaultsのいずれかの値を表示します。

NSArray *array = [[NSUserDefaults standardUserDefaults] objectForKey:@"AppleKeyboards"];
NSLog(@"Keyboards: %@", array);
NSUserDefaultsに値を設定します。

[[NSUserDefaults standardUserDefaults] setObject:@"test-value2" forKey:@"test-key"];
はキーの割り当てを繰り返します。後ろは前の部分をカバーします。
キャッシュ中のデータをバックグラウンドに同期して、プログラムがクラッシュした場合、バックグラウンドに同期されていないデータが失われます。

[[NSUserDefaults standardUserDefaults] synchronize];
最後に、NSUserDefaultsは一例であり、同時にスレッドの安全性でもある。