plist文件中的Boolean类型

转载 2015年07月08日 09:51:27

1、读取plist文件中的Boolean类型的字段值时,要先把它转为NSNumber类型,然后通过NSNumber的boolValue方法来读取该值。例子如下:

bool IsTrue=[(NSNumber*)[dic objectForKey:@"IsTrue"]boolValue];

2、写入时也是类似:

    Boolean setting =NO;

  NSNumber *testBoolean =[[NSNumber alloc]initWithBool:setting];

然后,才进行 plist文件的读写


3、读写plist文件


//下面函数主要是 获取的UISwitch(即switchView,在IB中进行了关联)的值,将其当前的值保存到plist文件中,以便程序下次启动时使用;通过这种方式可以保存和读取程序的一些配 置信息

- (void)viewDidLoad

{

    [superviewDidLoad];

#if 0 

   //1、创建plist文件

    

    //获取沙盒路径,创建plist文件,因为系统的list文件是只读属性,在沙盒中的文件才是可读和可写的,必须在沙盒中创建plist文件

    NSArray *paths=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES);

    NSString *path=[paths     objectAtIndex:0];

    NSString *filename=[path stringByAppendingPathComponent:@"personal.plist"];

    

   //创建一个NSDictionary

    NSMutableDictionary *dictionary =[[NSMutableDictionary alloc]init];

    

   //创建3个添加到dictionary中的变量,并对其赋值

    NSString *testString = [[NSString alloc]initWithString:@"fistValue1111"];

    NSNumber  *testInt = [[NSNumber alloc]initWithInt:5];

    NSNumber *testBoolean =[[NSNumber alloc]initWithBool:YES];

    

   //3个变量添加到dictionary

    [dictionary setValue:testString forKey:@"String test"];

    [dictionary setValue:testInt forKey:@"INteger test1"];

    [dictionary setValue:testBoolean forKey:@"Boolean test"];

    

   //dictionary中的数据写入plist文件中

    [dictionary writeToFile:filename atomically:YES];

    NSLog(@"%@",filename);

#endif    

 /******************************************************************/   

    

   //2、读取plist文件*获取某一个key的对应的valuse

    

   //读取plist文件,获取UISwitch的值,根据值来设置UISwitvch的显示

    //获取沙盒路径,创建plist文件,因为系统的list文件是只读属性,在沙盒中的文件才是可读和可写的,必须在沙盒中创建plist文件

   NSArray *readPaths=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES);

    NSString *readPath=[readPaths     objectAtIndex:0];

   NSString *plistPath=[readPathstringByAppendingPathComponent:@"personal.plist"];

    

   //读取到一个NSDictionary

    NSDictionary *dictionary1 = [[NSDictionaryalloc]initWithContentsOfFile:plistPath];

    

   //读取plist文件中的Boolean类型的字段值时,要先把它转为NSNumber类型,然后通过NSNumberboolValue方法来读取该值。例子如下:

    bool switchFlag=[(NSNumber*)[dictionary1objectForKey:@"Boolean test"]boolValue];

    

   //Boolean switchFlag = [dictionary1 objectForKey:@"Boolean test"];

    [self.switchViewaddTarget:selfaction:@selector(switchViewChange:)forControlEvents:UIControlEventValueChanged];

    if(switchFlag)

    {

       NSLog(@"switch的值为 NO");

        switchView.on = YES;

       //switchView.on

    }

   else//switchFlag=NO

    {

       NSLog(@"switch的值为 YES");

        switchView.on = NO;

    }

    

    

   //读取到一个NSArray

  // NSArray *array = [[NSArray alloc] initWithContentsOfFile:plistPath];

   // Do any additional setup after loading the view from its nib.

}


- (void)viewDidUnload

{

    [superviewDidUnload];

   // Release any retained subviews of the main view.

   // e.g. self.myOutlet = nil;

}


- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation

{

   // Return YES for supported orientations

    return (interfaceOrientation == UIInterfaceOrientationPortrait);

}



-(void)switchViewChange:(id)sender

{

    UISwitch *theSwitch =(UISwitch *)sender;

   NSLog(@"switch do nothing");

    Boolean setting = theSwitch.on;

    if(setting == NO)

    {

       NSLog(@"current setting = NO");

    }

    else if(setting == YES)

    {

       NSLog(@"current setting = YES");

    }

    

    //获取沙盒路径,创建plist文件,因为系统的list文件是只读属性,在沙盒中的文件才是可读和可写的,必须在沙盒中创建plist文件

   NSArray *paths=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES);

    NSString *path=[paths     objectAtIndex:0];

   NSString *plistPath=[pathstringByAppendingPathComponent:@"personal.plist"];

    

   NSMutableDictionary *dictionary =[[NSMutableDictionaryalloc]initWithContentsOfFile:plistPath];

    NSNumber *testBoolean =[[NSNumber alloc]initWithBool:setting];

    [dictionary setValue:testBoolean forKey:@"Boolean test"];

    

    [dictionary writeToFile:plistPath atomically:YES];

}

plist文件的读写 ; 读取 plist文件中的Boolean类型的字段值 和写入Boolean的值 (备忘)

1、读取plist文件中的Boolean类型的字段值时,要先把它转为NSNumber类型,然后通过NSNumber的boolValue方法来读取该值。例子如下: bool IsTrue=[(NS...
  • a6472953
  • a6472953
  • 2012年06月13日 14:54
  • 6156

MySql 中的 boolean 类型设置

在MySql中没有boolean值类型,在实际用的时候总是记不住替代的类型是那个,每次都要google半天,现在记载在这里,以便以后查找吧。 在编写 MySql 时候,如果 cre...
  • iamwangch
  • iamwangch
  • 2012年10月07日 14:17
  • 4628

关于javaBean中boolean类型变量的set和get

 boolean isProductInPromotion = false; 其的get、set方法如下 public boolean isProductInPromotion() ...
  • honghailiang888
  • honghailiang888
  • 2015年11月18日 17:24
  • 1579

PL/SQL Boolean类型

注意:Oralce SQL中没有Boolean这种数据类型,Boolean只是在PL/SQL中存在. 注意:在PL/SQL中,Boolean类型的变量可以取值TRUE,FALSE,NULL. 参考链接...
  • u010689306
  • u010689306
  • 2016年05月29日 22:45
  • 1344

在MySql中如何定义像Java中类型的Boolean类型

在MySql中如何定义像Java中类型的Boolean类型数据..其实,mysql中 是没有直接定义成Boolean这种数据类型.它只能定义成 tinyint(1) ;如果长度是1,tinyint(1...
  • archer119
  • archer119
  • 2016年07月02日 09:55
  • 5999

JAVA包装类Boolean的使用

对于Boolean类使用了字符串构造方式,并且之后使用了toString()方法将true和false以字符串形式输出。 /** * 对于Boolean类使用了字符串构造方式,并且之后使用了toS...
  • Gaowen_HAN
  • Gaowen_HAN
  • 2011年12月29日 19:04
  • 4664

mysql中没有boolean类型

在mysql中对bool或boolean数据类型这样描述:  Java代码  BOOL, BOOLEAN   These types are synonyms for TIN...
  • GodFamiliar
  • GodFamiliar
  • 2013年05月27日 14:08
  • 7513

reactJs中props对象的元素为Boolean类型时的显示问题

当调用组件时传入的参数为Boolean类型时,例如:closed={true},再在组件中打印{this.props.closed}是打印不出来true的,解决办法是打印{this.props.clo...
  • ivory_qin
  • ivory_qin
  • 2017年02月14日 13:53
  • 512

原来boolean不能初始化为空和对应于mysql数据库中类型与存取

最经在做一个项目用到了一个数据库建了个表里面有一个性别的属性用tinyint(1)对应与 java中的Boolean但是当我用反射来将result中的数据反射成对象并赋值的时候发现报IllegalAr...
  • hanghangde
  • hanghangde
  • 2016年04月26日 22:08
  • 2251

vb.net Boolean 数据类型

Boolean 数据类型由字符串至Boolean类型转换时只有"True"、"False"和数字才能转换为Boolean型,其它类型均会报错。例如执行以下代码,会报错:从字符串“”到类型“Boolea...
  • lvzenghui
  • lvzenghui
  • 2010年04月21日 14:03
  • 1270
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:plist文件中的Boolean类型
举报原因:
原因补充:

(最多只允许输入30个字)