我在这里有趣的是,我正在为我的项目使用xcode 4,我想创建简单的.plist文件来保存几个值,这些值将在代码执行期间用于不同的目的。这是我用来创建plist的代码:
- (NSString *)dataFilePath {
NSArray *paths = NSSearchPathForDirectoriesInDomains(
NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
return [documentsDirectory stringByAppendingPathComponent:@"somelist.plist];
}
应该将plist名称附加到路径的最后一行代码不能完成它的工作。永远不会创建Plist。现在,奇怪的是,我设法在几天前使用相同的代码创建一个。之后,我只在AppDelegate中移动这段代码,因为我从不同的地方调用这段代码。当我切换到4.3模拟器然后在iphone设备上尝试时,我发现这不起作用。当我切换到4.2模拟器它工作,因为已经有一个plist,但是当我更改其名称(创建新的)没有任何反应 - 意味着,列表不会创建。我也尝试将代码移回原来的位置,但这没有给出预期的结果。
答案 0 :(得分:0)
您的代码无论如何都不应该创建一个plist,只返回一个路径。为了在所选路径上实际保存plist,您可以选择几种方法,例如在NSDictionary上使用以下方法:
- (void)saveDictionary
{
NSDictionary *dictionary = [NSDictionary dictionaryWithObject:@"bla" forKey:@"test"];
NSString *path = [self datafilePath];
[dictionary writeToFile:path atomically:YES];
}
- (NSString *)dataFilePath {
NSArray *paths = NSSearchPathForDirectoriesInDomains(
NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
return [documentsDirectory stringByAppendingPathComponent:@"somelist.plist];
}