zoukankan      html  css  js  c++  java
  • 用户首选项的创建和保存

      1 //  Copyright 用户首选项的创建和保存
      2 //            1.保存方式:创建一个纯文本文件,或是使用更规范的格式(如XML)来保存
      3 //            2.在数据库中保存首选项
      4 //            3.使用USUserDefault
      5 //
      6 //            USUserInfo常见方法:
      7 //                            1.standardUserDefaults 创建共享默认对象方法
      8 //                            2.objectForKey         返回键的实例方法。保存在许多变体,可以返回特定对象类型,比如字符串、布尔值等
      9 //                            3.setobjectForKey      设置对象值的实例方法。保存在许多变体,可以返回特定对象类型,比如字符串、布尔值等
     10 //                            4.objectForKey         保存共享类对象发生的所有更改的类方法
     11 
     12 
     13 #import "TheadViewController.h"
     14 
     15 @interface TheadViewController ()
     16 
     17 @end
     18 
     19 @implementation TheadViewController
     20 
     21 - (id)initWithStyle:(UITableViewStyle)style
     22 {
     23     self = [super initWithStyle:style];
     24     if (self) {
     25         NSUserDefaults *myDefaults=[NSUserDefaults standardUserDefaults];
     26         
     27         //提取并设置声音值
     28         NSMutableArray *array1=[NSMutableDictionary
     29                                 dictionaryWithObjectsAndKeys:@"Sounds",@"titleValue",
     30                                 @"switch",@"accessoryValue",
     31                                 [NSNumber numberWithBool:[myDefaults boolForKey:@"soundsValue"]],@"prefValue",
     32                                 @"setSounds",@"targetValue",nil];
     33         
     34         //提取并设置音乐值
     35         NSMutableArray *array2=[NSMutableDictionary
     36                                 dictionaryWithObjectsAndKeys:@"Music",@"titleValue",
     37                                 @"switch",@"accessoryValue",
     38                                 [NSNumber numberWithBool:[myDefaults boolForKey:@"MusicValue"]],@"prefValue",   //2
     39                                 @"setMusic",@"targetValue",nil];
     40         
     41         settingList=[NSArray arrayWithObjects:array1,array2,nil];
     42         [settingList retain];
     43         switchList=[NSMutableArray arrayWithCapacity:settingList.count];
     44         
     45         for (int i=0; i<[settingList count]; i++) {
     46             if ([[[settingList objectAtIndex:i]objectForKey:@"accessoryValue"] compare:@"switch"]==NSOrderedSame) {
     47                 //实例一个UISwitch并注册事件
     48                 UISwitch *myswitch=[[[UISwitch alloc]initWithFrame:CGRectZero]autorelease];
     49                 myswitch.on=[[[settingList objectAtIndex:i]objectForKey:@"prefValue"]boolValue];
     50                 [myswitch addTarget:self action:NSSelectorFromString([[settingList objectAtIndex:i]objectForKey:@"targetValue"]) forControlEvents:UIControlEventValueChanged];
     51                 
     52                 [switchList insertObject:myswitch atIndex:i];
     53             }else{
     54                 [switchList insertObject:@"" atIndex:i];
     55             }
     56         }
     57         [switchList retain];
     58         
     59         //将表格下移
     60         CGPoint tableCenter=self.view.center;
     61         self.view.center=CGPointMake(tableCenter.x, tableCenter.y+22);
     62         self.tabBarItem.badgeValue=[NSString stringWithFormat:@"%d",[settingList count]];
     63     }
     64     return self;
     65 }
     66 
     67 - (void)viewDidLoad
     68 {
     69     [super viewDidLoad];
     70     
     71 }
     72 
     73 #pragma mark --执行操作
     74 
     75 -(void)setMusic{
     76     NSUserDefaults *defaults=[NSUserDefaults standardUserDefaults];  //1
     77     UISwitch *musicSwitch=[switchList objectAtIndex:1];
     78     [defaults setBool:musicSwitch.on forKey:@"MusicValue"];     //3
     79     [NSUserDefaults resetStandardUserDefaults];  //4
     80 }
     81 
     82 -(void)setSounds{
     83     NSUserDefaults *defaults=[NSUserDefaults standardUserDefaults];
     84     UISwitch *soundSwitch=[switchList objectAtIndex:0];
     85     [defaults setBool:soundSwitch.on forKey:@"soundsValue"];
     86     [NSUserDefaults resetStandardUserDefaults];
     87     
     88 }
     89 
     90 - (void)didReceiveMemoryWarning
     91 {
     92     [super didReceiveMemoryWarning];
     93     // Dispose of any resources that can be recreated.
     94 }
     95 
     96 #pragma mark - Table view data source
     97 
     98 - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
     99 {
    100     return 1;
    101 }
    102 
    103 - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
    104 {
    105     return settingList.count;
    106 }
    107 
    108 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
    109 {
    110     static NSString *CellIdentifier = @"Cell";
    111     UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    112     if (cell == nil) {
    113         cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
    114     }
    115     cell.textLabel.text=[[settingList objectAtIndex:indexPath.row]objectForKey:@"titleValue"];
    116     
    117     //将视图放入到数组
    118     if ([switchList objectAtIndex:indexPath.row]) {
    119         cell.accessoryView=[switchList objectAtIndex:indexPath.row];
    120     }
    121     
    122     return cell;
    123 }
    124 
    125 
    126 -(NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section{
    127     return @"Audio Preferencess";
    128 }
    129 
    130 #pragma mark - Table view delegate
    131 
    132 - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
    133 {
    134 }
    135 
    136 @end
  • 相关阅读:
    Exceptionless in Docker on Linux 搭建及部署疑难杂症
    Golang 基础语法介绍及对比(二)
    Go Windows 环境安装及配置(一)
    ElasticSearch搜索解析
    ElasticSearch文档及分布式文档存储
    ElasticSearch利用IK实现全文搜索
    ElasticSearch简要总览
    轻松驾驭统计学——数据分析必备技能
    【面试】数据分析常见问题
    【Echarts】
  • 原文地址:https://www.cnblogs.com/Liaoyang/p/3353454.html
Copyright © 2011-2022 走看看