关于向plist写入布尔文件

时间:2012-04-23 09:17:38

标签: iphone plist

我有一个关于向plist写入布尔值的问题。   有线的东西是plist在写入和读取之前的dir是完全相同的,但是我不能写入它的布尔值。我怎么解决这个问题?   顺便说一句:我在iPhone模拟器中得到了写入结果,但在真正的iPhone调试中失败了。

//--- CODE HERE ---//
[ContentList objectAtIndex: paramSender.tag] setValue: [NSNumber numberWithBool: TRUE] forKey: BooleanKey]; // set object boolean value to be ture;
[ContentList writeToFile: self.plistPath atomically: YES]; // update the plist
NSMutableArray *tmp = [[NSMutableArray alloc] initWithContentsOfFile: self.plistPath]; // get the content from the updated plist
NSLog(@"the bool value is %@", [[ContentList objectAtIndex: paramSender.tag] objectForKey: BooleanKey]);
NSLog(@"After update boolValue is %@", [[tmp objectAtIndex: paramSender.tag] objectForKey: BooleanKey]);

//--- OUTPUT IN NSLOG ---// 
2012-04-23 18:09:12.164 iPhoneTips[151:707] the bool value is 1
2012-04-23 18:09:12.167 iPhoneTips[151:707] After update boolValue is 0  

//--- FINISH ---//

3 个答案:

答案 0 :(得分:0)

请改为尝试:

NSLog(@"After update boolValue is %d", [[[tmp objectAtIndex: paramSender.tag] objectForKey: BooleanKey] boolValue]);

答案 1 :(得分:0)

试过这个?

[[ContentList objectAtIndex: paramSender.tag] setBool:YES forKey: BooleanKey];

答案 2 :(得分:0)

最后,我知道了plist的原理。

包中的plist是只读的。如果要以编程方式将数据写入plist,则必须将plist从bundle移动到文档目录,然后无论写入还是读取都可以编辑数据...