NSUserDefaults的registerDefaults用法

zioc2014 2014-07-07 12:07:01
在AppDelegate里写了如下代码:

NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];

//注册默认设置
NSDictionary *defaultValues = [NSDictionary dictionaryWithObjectsAndKeys:0,@"currency",YES,@"dailyNotification", nil];
[userDefaults registerDefaults:defaultValues];

BOOL flag = [userDefaults boolForKey:@"dailyNotification"];


flag还是为NO。

registerDefaults到底要怎么用?难道默认值的设置要用set吗?
...全文
1539 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
xinqing007 2016-03-13
  • 打赏
  • 举报
回复
//注册默认设置 NSDictionary *defaultValues = [NSDictionary dictionaryWithObjectsAndKeys:@0,@"currency",@YES,@"dailyNotification", nil]; [userDefaults registerDefaults:defaultValues];  这样就OK了, 字典的中要存放对象类型。
Gil 2014-07-07
  • 打赏
  • 举报
回复
http://www.cnblogs.com/letmefly/archive/2012/07/14/2591735.html 不知这篇文章能不能解决你的疑惑
不担心 2014-07-07
  • 打赏
  • 举报
回复
UD就是userDefaults
不担心 2014-07-07
  • 打赏
  • 举报
回复
那我就不知道为什么了,我没有你用的那么复杂,我把我的用法贴出来给你看看 存 +(void)saveUser:(NSString *)account userID:(int)UserID passwd:(NSString *)passwd { [UD setObject:@{@"account" : account, @"userID":[@(UserID) stringValue], @"passwd" : passwd} forKey:@"loginInfo"]; [UD synchronize]; } 取 +(NSString *) account { return [[UD objectForKey:@"loginInfo"] valueForKey:@"account"]; } 就这样就行了
zioc2014 2014-07-07
  • 打赏
  • 举报
回复
引用 1 楼 disburden 的回复:
[userDefaults synchronize]
加了 还是取不到
不担心 2014-07-07
  • 打赏
  • 举报
回复
[userDefaults synchronize]
hslinux 2014-07-07
  • 打赏
  • 举报
回复
    NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
    
    //注册默认设置
    NSDictionary *defaultValues = [NSDictionary dictionaryWithObjectsAndKeys: [[NSNumber alloc] initWithBool:NO], @"currency", [[NSNumber alloc] initWithBool:YES], @"dailyNotification", nil];
    [userDefaults registerDefaults:defaultValues];
    
    [userDefaults setValue:[[NSNumber alloc] initWithInt:0] forKey:@"dailyNotification"];
    BOOL flag = [userDefaults boolForKey:@"dailyNotification"];
    
    NSLog(@"flag = %d", flag);
    [userDefaults removeObjectForKey:@"dailyNotification"];
    flag = [userDefaults boolForKey:@"dailyNotification"];
    
    NSLog(@"flag = %d", flag);
你的代码:
NSDictionary *defaultValues = [NSDictionary dictionaryWithObjectsAndKeys:0,@"currency",YES,@"dailyNotification", nil];
    [userDefaults registerDefaults:defaultValues];
实际就是:
NSDictionary *defaultValues = [NSDictionary dictionaryWithObjectsAndKeys:0];
    [userDefaults registerDefaults:defaultValues];
NSDictionary dictionaryWithObjectsAndKeys需要的参数是对象,这个时候,0与nil是等价的。

29,027

社区成员

发帖
与我相关
我的任务
社区描述
主要讨论与iOS相关的软件和技术
社区管理员
  • iOS
  • 大熊猫侯佩
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧