简体   繁体   中英

About write boolean file to the plist

I have a question on writing Boolean value to the plist. The wired thing is the dir for plist before write and read is totally the same, but I can not write to the boolean value to it. how can I solve this problem? btw: I got the write result in iPhone simulator but failed in real iPhone debug.

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

试试这个代替:

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

试过这个吗?

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

Finally, I know the principle of the plist.

plist in bundle is read only. If you want to write data to the plist programmatically, you have to move the plist form the bundle to the document directory, then you can edit the data no matter write or read...

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM