建设与发展运行:plist没有更新

时间:2011-05-16 06:25:44

标签: xcode4 plist

我的资源包中有一个plist,我按文件夹引用复制。出于某种原因,我编辑过的&保存(在Xcode中)plist在删除应用程序之前不会被复制/更新。否则,即使我删除了应用程序,也会复制旧的plist(编辑前)。数据是否遗留下来?

plist经常被编辑,所以这种调试非常耗时。如何确保正确复制plist?

2 个答案:

答案 0 :(得分:1)

您是否正在复制Documents文件夹中的plist文件?如果您要复制,那么每次启动应用程序时都必须从iPhone模拟器中删除该应用程序。

您也可以做一件事......每次启动应用程序时,您都可以将文件复制到文档文件夹中。 因为只能通过从模拟器/设备中删除应用程序来删除文档文件夹的内容。

然后无需重启模拟器/设备和xcode。

答案 1 :(得分:0)

这是一个laaate答案;但是,嘿,OP没有标出正确的答案,所以这是我的解决方案。我创建了两个属性列表。第一个是调试信息,如常数,字符串和布尔值。我打电话给这个属性列表SETTINGS.plist。我的另一个plist是我用来保存游戏数据的那个。由于SETTINGS plist是我通过xcode界面更新的plist,因此每次运行应用程序时都会更新它。

-(void)setUpPlist{

listPath = [[self docsDir] stringByAppendingPathComponent:@"SETTINGS.plist"];

if (![[NSFileManager defaultManager] fileExistsAtPath:listPath]) {
    [[NSFileManager defaultManager] copyItemAtPath:[[NSBundle mainBundle] pathForResource:@"SETTINGS" ofType:@"plist"] toPath:listPath error:nil];

}
else {
    [[NSFileManager defaultManager] removeItemAtPath:listPath error:nil];
    [[NSFileManager defaultManager] copyItemAtPath:[[NSBundle mainBundle] pathForResource:@"SETTINGS" ofType:@"plist"] toPath:listPath error:nil];
}

savedData = [NSMutableDictionary dictionaryWithContentsOfFile:listPath];
}

-(NSString *)docsDir{
return [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
}

此处,listPath属于NSString类型,savedDate属于NSMutableDictionary类型。希望这会有所帮助。