Reputation: 9390
how to store values inside Plist and read while runtime in iphone 3.0?.
Thanks in Advance.
Upvotes: 1
Views: 1514
Reputation: 3851
This solution can be applied to both NSArray
and NSDictionary
.
Use this method to make a NSData
from property list and use writeToFile
to persist it to disk.
[NSPropertyListSerialization dataFromPropertyList:(id)plist
format:(NSPropertyListFormat)format
errorDescription:(NSString **)errorString];
Use this method to read property list from NSData
.
[NSPropertyListSerialization propertyListFromData:(NSData *)data
mutabilityOption:(NSPropertyListMutabilityOptions)opt
format:(NSPropertyListFormat *)format
errorDescription:(NSString **)errorString];
Example:
NSPropertyListFormat format = 0;
NSString *errorString = nil;
NSDictionary *dataDict = [NSPropertyListSerialization propertyListFromData:data
mutabilityOption:NSPropertyListMutableContainersAndLeaves
format:&format errorDescription:&errorString];
if (errorString != nil) {
NSLog(errorString);
[errorString release];
}
NSLog(@"got dictionary:%@", dataDict);
errorString = nil;
NSData *data = [NSPropertyListSerialization dataFromPropertyList:dataDict
format:NSPropertyListXMLFormat_v1_0 errorDescription:errorString];
NSLog(@"plist data:%@", data); // convert to NSString to get <plist>
Upvotes: 1
Reputation: 135578
If you have an array or dictionary that contains only "standard" data types like strings, dates, numbers, arrays, and dictionaries, you can save the contents to a .plist file with -[NSArray writeToFile:atomically:]
or -[NSDictionary writeToFile:atomically:]
. To read the file, use -initWithContentsOfFile:
.
Note that the application bundle is not writable on iPhone OS devices so you will have to store the file in your app's Documents directory.
Upvotes: 2