在NSDictionary中编辑plist

时间:2011-09-22 02:45:39

标签: objective-c plist nsdictionary

仍在学习目标-c对我来说如此光鲜。我正在将一个plist导入NSDictionary对象,并希望将字典中的plist内容更改为小写一次。我尝试了几种不同的运气方式。也许我应该编辑NSDictionary中的字符串,但后来我不知道该怎么做。

我目前正确地导入了plist,但是lowercaseString行实际上没有做任何事情。

NSString *contents = [[NSBundle mainBundle] pathForResource:@"Assets/test" ofType:@"plist"];

NSString *newContents = [contents lowercaseString];

NSDictionary *someDic = [NSDictionary dictionaryWithContentsOfFile:newContents];

for (NSString *someData in someDic) {
        NSLog(@"%@ relates to %@", someData, [someDic objectForKey:someData]);
    }

提前致谢。

编辑:好的,所以我NSLog了“内容”字符串,它给了我一个路径值,所以显然将其更改为lowercaseString将不会做任何事情。我觉得我必须访问字典中的字符串。

1 个答案:

答案 0 :(得分:1)

这一行

NSString *newContents = [contents lowercaseString];

更改从

返回的路径字符串
NSString *contents = [[NSBundle mainBundle] pathForResource:@"Assets/test" ofType:@"plist"];

所以你最终会得到像../ assets / test.plist

这样的东西

你将需要遍历someDic的内容,根据旧的转换字符串创建一个新的字典为小写,如果你只关注someDic中的值,你可以做类似的事情

for( NSString * theKey in someDic )
{
    id     theObj = [someDic objectForKey:theKey];
    if( [theObj isKindOfClass:[NSString class]] )
        theObj = [theObj lowercaseString];
    [theNewDict setObject:theObj forKey:theKey];
}