iOS開発メモの定数声明とNSUserDefaults
1824 ワード
もっと読む
iOSでは、定数宣言は通常2つの方式を使用します。
1、C言語を使用する前処理方式
NSUserDefaults類は、アプリケーション設定と属性、ユーザデータを保存するために使用されます。例えば、アプリケーションでユーザが使用する画像やデフォルトの色スキームを記憶することができます。これらのオブジェクトはiOSのいわゆる「defaultsシステム」に格納されている。iOSのdefaultsシステムは全体のアプリで利用できますので、defaultsシステムに格納されたデータもアプリケーションライフサイクル全体で利用できます。つまり、ユーザがプログラムをオフにしても、電源をオフにしても、ユーザが再度プログラムを開いても、または起動しても、これらのデータは依然として存在します。NSUserDefaultsが格納できるデータタイプは、
NSData
NSString
NSNumber
NSDate
NSAray
NSDictionary
UImageのような他のタイプを保存したい場合は、符号化するか、NSData、NSNumber、またはNSStringに変換するべきです。
NSUserDefaultsを見ると、あくまでも対象はdictionaryのデータ構造です。
キャッシュ中のデータをバックグラウンドに同期して、プログラムがクラッシュした場合、バックグラウンドに同期されていないデータが失われます。
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 DefaultsNSUserDefaults類は、アプリケーション設定と属性、ユーザデータを保存するために使用されます。例えば、アプリケーションでユーザが使用する画像やデフォルトの色スキームを記憶することができます。これらのオブジェクトは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は一例であり、同時にスレッドの安全性でもある。