0

我正在尝试将一个简单的数组写入 plist 文件,然后再检索它。我有以下代码:

+ (NSString*) dataFilePath
{
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentationDirectory, NSUserDomainMask, YES);
    NSString *documentDirectory = [paths objectAtIndex:0];
    NSString *dataFilePath = [documentDirectory stringByAppendingPathComponent:@"TipAlertViewDefaults.plist"];

    return dataFilePath;
}

+ (NSArray*) tipAlertViewDefaults
{
    NSString *dataFilePath = [self dataFilePath];
    NSLog(@"DataFilePath: %@", dataFilePath);
    NSMutableArray *tipAlertViewDefaults;

    if ([[NSFileManager defaultManager] fileExistsAtPath:dataFilePath])
    {
        NSLog(@"File Exists");
        tipAlertViewDefaults = [[NSMutableArray alloc] initWithContentsOfFile:dataFilePath];
    }
    else
    {
        NSLog(@"File Doesn't Exist");
        tipAlertViewDefaults = [[NSMutableArray alloc] initWithObjects:[NSNumber numberWithBool:NO], nil];
        [tipAlertViewDefaults writeToFile:dataFilePath atomically:YES];
    }

    return tipAlertViewDefaults;
}

我调用了这个方法两次,第一次它不应该找到文件并第一次写入。然后第二次调用应该能够找到该文件,但它不是。谁能看到我要去哪里错了?

4

2 回答 2

5

再一次,Xcode 愚蠢的自动完成让你迷失了:NSDocumentationDirectory应该是NSDocumentDirectory.

文档目录在 iOS 上不存在,所以你不能在那里写。

于 2013-04-05T15:10:48.507 回答
0

您真的要写入NSDocumentationDirectory目录吗?我认为,默认情况下不会创建此目录(因此您必须先创建)。

也许你想要NSDocumentDirectory。我试过了,你的代码有效。

于 2013-04-05T15:26:12.863 回答