`

iOS开发随笔记之 常量声明和NSUserDefaults

 
阅读更多
在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";

NSUserDefaults
NSUserDefaults类用于保存应用程序设置和属性以及用户数据。例如,你可以存储用户在应用程序中使用的图片或默认颜色方案。这些对象存储在iOS所谓的“defaults系统”中。iOS的defaults系统在整个app中都是可用的,因此存放到defaults系统中的数据也是整个应用程序生命周期中可用的。也就是说,无论用户关闭程序还是关机,在用户再次打开程序或开机后这些数据仍然存在。NSUserDefaults可以存储的数据类型包括:
NSData
NSString
NSNumber
NSDate
NSArray
NSDictionary
如果你想保存其他类型,如UIImage,你应该进行编码(即archive),或者将它转换为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"];
重复给一个Key赋值,后面的会覆盖前面的。

把缓存中的数据同步到后台,程序崩溃时,未同步到后台的数据会丢失。
[[NSUserDefaults standardUserDefaults] synchronize];


最后,NSUserDefaults是单例的,同时也是线程安全的。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics