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...

在iOS开发中调用本地plist文件并封装为NSDictionary字典类型

现将在iOS开发中调用本地plist文件并封装为NSDictionary字典类型做成图片。例子均是来自《ios5开发基础教程》中的章节,分别为《表视图--08 - Sections2》、《加速计---...

MySQL数据库之数据类型BOOL/BOOLEAN与TINYINT测试总结

【导读】 网络上很多人咨询mysql是否提供布尔类型?MySQL数据库确实提供布尔类型,此数据类型的关键字可以写成:布尔类型BOOL或布尔类型BOOLEAN,但是MySQL数据库数据类型的布尔类型是...
  • gm_163
  • gm_163
  • 2012年10月09日 18:57
  • 2133

JavaScript学习笔记——基本包装类型(上)Boolean、Number

为了便于操作基本类型值,ECMAScript还提供了三个特殊的引用类型:Boolean、Number和String。这些类型与其他引用类型相似,同时也具有与各自的基本包装类型相应的特殊行为。实际上,每...

关于Java中的boolean类型所占存储空间

http://download.oracle.com/docs/cd/E17409_01/javase/tutorial/java/nutsandbolts/datatypes.htmlboolean...
  • canba
  • canba
  • 2011年03月20日 00:36
  • 3070

boolean类型的getter方法

严重: Servlet.service() for servlet jsp threw exception javax.el.PropertyNotFoundException: Property '...

attempting to use incompatible return type(返回类型boolean与java.lang.Object不兼容)

attempting to use incompatible return type(返回类型boolean与java.lang.Object不兼容)

POJO 类中的任何boolean布尔类型的变量,都不要加 is,否则部分框架解析会引起序列化错误

POJO 类中的任何boolean布尔类型的变量,都不要加 is,否则部分框架解析会引起序列化错误 反例:定义为基本数据类型 boolean isSuccess;的属性,它的方法也是 isSucces...

javascript后台直接返回Boolean类型处理

r最近使用jqueyr的ajax后台验证,直接返回一个Boolean类型的值的到前台,使用json格式传到前台 var result = $.ajax({ url: '/'+window.loc...
  • zml6308
  • zml6308
  • 2014年12月01日 10:01
  • 3823

<c:forEach> ·index:当前这次迭代从0开始的迭代索引。 ·count:当前这次迭代从1开始的迭代计数。 ·first:用来表明当前这轮迭代是否为第一次迭代,该属性为boolean类型。

编辑 目录 1简介 2本体内容 3属性 4范例 5注意 1简介...
  • tfy1332
  • tfy1332
  • 2014年04月02日 14:58
  • 6191
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:plist文件中的Boolean类型
举报原因:
原因补充:

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