RegisterDefaults 的用法

通常在appDelegate的didFinishLaunchingWithOptions里调用

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

NSString *userAgent = [NSString userAgentStr]; //获取系统信息

比如//  4.0.8.201611041630 (x86_64; iOS 10.1; Scale/2.00)

NSDictionary * dictionary =@{@"UserAgent": userAgent }; //User-Agent

[[NSUserDefaultsstandardUserDefaults] registerDefaults:dictionary];

returnYES;

}

registerDefaults方法调用时会check NSUserDefaults里是否已经存在了相同的key,如果有则会把其覆盖。举个例子:

1. 当第一次run上面的app时,"UserAgent"="userAgent"会写入NSUserDefaults里

2.然后再次启动你的app时,获取最新的系统信息,

[[NSUserDefaults standardUserDefaults] setObject : userAgent forKey:@"UserAgent"];

这时NSUserDefaults里"UserAgent" 存储的就是最新的系统信息。

这种做法通常的应用场景是:UIWebView

在http协议里,头信息中有一个 User-Agent,它的作用是告诉服务器,用户客户端是什么浏览器,以及操作系统的信息的。在某些特殊的情况下,服务器根据浏览器的不同类型,输出不同的内容。

你可能感兴趣的:(RegisterDefaults 的用法)