我的资源包中有一个plist,我按文件夹引用复制。出于某种原因,我编辑过的&保存(在Xcode中)plist在删除应用程序之前不会被复制/更新。否则,即使我删除了应用程序,也会复制旧的plist(编辑前)。数据是否遗留下来?
plist经常被编辑,所以这种调试非常耗时。如何确保正确复制plist?
答案 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
类型。希望这会有所帮助。