Xcode 4创建.plist

时间:2011-05-23 06:08:35

标签: iphone objective-c xcode ios property-list

我在这里有趣的是,我正在为我的项目使用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,但是当我更改其名称(创建新的)没有任何反应 - 意味着,列表不会创建。我也尝试将代码移回原来的位置,但这没有给出预期的结果。

1 个答案:

答案 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];
}