NSUserDefaults

本文介绍了如何使用NSUserDefaults在iOS应用中持久化存储信息,包括设置、获取、更新、删除数据,以及如何通过通知和定时任务操作数据。此外,文章还展示了如何创建和解析日期时间,以及如何获取当前日期时间。

使用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);

先展示下效果 https://pan.quark.cn/s/a4b39357ea24 遗传算法 - 简书 遗传算法的理论是根据达尔文进化论而设计出来的算法: 人类是朝着好的方向(最优解)进化,进化过程中,会自动选择优良基因,淘汰劣等基因。 遗传算法(英语:genetic algorithm (GA) )是计算数学中用于解决最佳化的搜索算法,是进化算法的一种。 进化算法最初是借鉴了进化生物学中的一些现象而发展起来的,这些现象包括遗传、突变、自然选择、杂交等。 搜索算法的共同特征为: 首先组成一组候选解 依据某些适应性条件测算这些候选解的适应度 根据适应度保留某些候选解,放弃其他候选解 对保留的候选解进行某些操作,生成新的候选解 遗传算法流程 遗传算法的一般步骤 my_fitness函数 评估每条染色体所对应个体的适应度 升序排列适应度评估值,选出 前 parent_number 个 个体作为 待选 parent 种群(适应度函数的值越小越好) 从 待选 parent 种群 中随机选择 2 个个体作为父方和母方。 抽取父母双方的染色体,进行交叉,产生 2 个子代。 (交叉概率) 对子代(parent + 生成的 child)的染色体进行变异。 (变异概率) 重复3,4,5步骤,直到新种群(parentnumber + childnumber)的产生。 循环以上步骤直至找到满意的解。 名词解释 交叉概率:两个个体进行交配的概率。 例如,交配概率为0.8,则80%的“夫妻”会生育后代。 变异概率:所有的基因中发生变异的占总体的比例。 GA函数 适应度函数 适应度函数由解决的问题决定。 举一个平方和的例子。 简单的平方和问题 求函数的最小值,其中每个变量的取值区间都是 [-1, ...
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值