我是ios开发中的新手,我无法使用以前的方法读取我创建的plist中的值。 read方法返回(null)(null)。谁能帮帮我?
这里我创建了一个plist:
- (void)createAppPlist {
plistPath = [self getDataFileDir];
// Create the data structure
rootElement = [NSMutableDictionary dictionaryWithCapacity:3];
NSError *err;
name = @"North America";
country = @"United States";
continentElement = [NSMutableDictionary dictionaryWithObjects:[NSArray arrayWithObjects:name, country, nil] forKeys:[NSArray arrayWithObjects:@"Name", @"Country", nil]];
[rootElement setObject:continentElement forKey:@"Continent"];
//Create plist file and serialize XML
data = [NSPropertyListSerialization dataWithPropertyList:rootElement format:NSPropertyListXMLFormat_v1_0 options:0 error:&err];
if(data)
{
[data writeToFile:plistPath atomically:YES];
} else {
NSLog(@"An error has occures %@", err);
}
NSLog(@"%@", rootElement);
NSLog(@"%@", data);
}
在这里,我正试图获得价值......
-(void)readAppPlist
{
plistPath = [self getDataFileDir];
NSMutableDictionary *propertyDict = [[NSMutableDictionary alloc] initWithContentsOfFile:plistPath];
name = [propertyDict objectForKey:@"Name"];
country = [propertyDict objectForKey:@"Country"];
NSLog(@"%@ %@", name, country);
}
答案 0 :(得分:1)
使用以下代码在文档目录中创建和读取Plist,您可以根据需要更改存储路径
- (void)createAppPlist {
// plistPath = [self getDataFileDir];
// Create the data structure
NSMutableDictionary *rootElement = [NSMutableDictionary dictionaryWithCapacity:3];
NSString *name = @"North America";
NSString *country = @"United States";
NSMutableDictionary *continentElement = [NSMutableDictionary dictionaryWithObjects:[NSArray arrayWithObjects:name, country, nil] forKeys:[NSArray arrayWithObjects:@"Name", @"Country", nil]];
[rootElement setObject:continentElement forKey:@"Continent"];
//Create plist file
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *docDir = [paths objectAtIndex:0];
NSString *filePath = [docDir stringByAppendingPathComponent:@"myPlist.plist"];
[rootElement writeToFile:filePath atomically:YES];
NSLog(@"%@", rootElement);
}
-(void)readAppPlist
{
// Get pList file path
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *docDir = [paths objectAtIndex:0];
NSString *filePath = [docDir stringByAppendingPathComponent:@"myPlist.plist"];
NSMutableDictionary *propertyDict = [[NSMutableDictionary alloc] initWithContentsOfFile:filePath];
NSDictionary *rootDict = [propertyDict valueForKey:@"Continent"];
// now read all elements inside, it will print key an value
[rootDict enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop){
NSLog(@"[%@]->[%@]",key,obj);
}];
}