如何写一个BOOL到plist?

时间:2009-12-19 22:33:49

标签: iphone objective-c cocoa-touch plist

我想为plist文件条目分配一个布尔值。我正在做以下事情:

NSString *aBool = realBoolValue ? @"YES" : @"NO";      
[myplist setValue: aBool forKey:@"boolKey"];
[myplist writeToFile: [NSHomeDirectory() stringByAppendingPathComponent: plistFilePath] atomically:NO];

但是任务永远不会。我正在做以上操作,因为以下内容不起作用:

[myplist setValue: realBoolValue forKey:@"boolKey"];

它提供了不兼容的类型错误。我做错了什么?

- 编辑---

plistFilePath初始化为

plistFilePath = [NSHomeDirectory() stringByAppendingPathComponent: @"Library/Preferences/myfile.plist"];

2 个答案:

答案 0 :(得分:16)

您可以将其包装在NSNumber对象中:

  [NSNumber numberWithBool:yourBool]

从plist中读回值时使用[NSNumber boolValue]。

答案 1 :(得分:0)

[NSNumber numberWithBool:yourBool]

如果您这样做,则在致电objectForKey@"boolKey"时会收到一个号码。 但是如果你在plist文件中添加bool for key,你将获得 NSCFBoolen