NSUserDefaults

来源:互联网 发布:长城哈弗官网数据 编辑:程序博客网 时间:2024/06/06 10:35

使用NSUserDefaults,即使程式退出运行也会保存信息

 NSUserDefault只能保存NSString型,NSNumber型,NSArray型,NSDictionary型,NSData型,其他型的话可先转成NSData型,

 

取得userDefaults,登录到Dictionary:

NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];//取得
NSMutableDictionary *mDic = [NSMutableDictionary dictionary];
 

初始化keyvalue,然后登记到Dictionary:

[defaults setObject: @"99" forKey:@"KEY_I"]; // key的初始值是99
[defaults setObject:@"helloforKey:@"KEY_H"]; //key的初始值是hello
[ud registerDefaults: mDic]; // *只会登记不存在的key的值

                            

设定keyvalue,保存并更新:

NSUserDefaults *ud = [NSUserDefaults standardUserDefaults]; //取得
[ud setFloat:1.23  forKey:@"KEY_F"];  //保存
[ud setObject:@"你好 forKey:@"KEY_S"]; //保存
[ud synchronize]; // *不存在的key新規,已存在的key更新其值
 

取得信息:

NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];  //取得
float f = [ud floatForKey:@"KEY_F"]; 
NSString s = [ud stringForKey:@"KEY_S"]; 
 

删除信息:

NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];  //取得
[ud removeObjectForKey:@"KEY_I"];
 

作成通知:

NSNotification *n = [NSNotification notificationWithName:@"Today"
  object:self
 userInfo:dic];

通知开始执行:

[[NSNotificationCenter defaultCenterpostNotification: cn];

 

收信方:

取得通知:

NSNotificationCenter *nc = [NSNotificationCenter defaultCenter];

去通知中心要求得到通知同时呼叫需执行的方法:

 [nc addObserver:self selector:@selector(hello:)
                            name:@"Today"
                      object:nil];
-(void)hello:(NSNotificationCenter*)center{
    //从通知得到的值 center    
NSString *value = [[center userInfoobjectForKey:@"KEY"];   

 

 

timer是否已经开始在进行中:

BOOL b = [tm isValid];

 

自己设定的形式来取得日期:

NSDateFormatter *df = [[NSDateFormatter alloc] init];
df.dateFormat  = @"yyyy/MM/dd HH:mm:ss";
或 [df setDateFormat:@"yyyy/MM/dd HH:mm:ss"];

 

取得现在日期时间:(连接上面设定形式)

NSString *str = [df stringFromDate:[NSDate date]];

设定日期: (连接上面设定形式)

NSDate *aDate = [df dateFromString: @"2000/03/01 00:00:00"];

 

从某时间开始经过某秒后的日期时间:

bDate = [aDate initWithTimeInterval:3*60  sinceDate:aDate]; //aDate3分钟
 

指定某月的末日: (使用前一个月的第一天来取得)

NSDate *aDate = [inputDateFormatter dateFromString:@"2000/03/01 00:00:00"]; //给定31日零点日期
NSDate *bDate = [orgDate initWithTimeInterval:-1*24*60*60  sinceDate:a];// 1日前
NSLog(@"20002月的末日 -> %@"bDate);

 

取得某两个时间相隔多久:

since = [dateA timeIntervalSinceDate: dateB];

 

只取得日期不要时间:

NSDateFormatter *df = [[NSDateFormatter alloc] init];
[df setTimeStyle: NSDateFormatterNoStyle];
[df setDateStyle: NSDateFormatterMediumStyle];          
NSString *nowDateStr = [df stringFromDate:[NSDate date]];
NSDate *nowDate = [df dateFromString:nowDateStr];
NSLog(@"%@", nowDate);

原创粉丝点击